问题背景:

情况是这样的,很多开发同事的PLSQL上班时间开着8个小时,有时候他们出去抽烟后或者中午吃完饭,回来在PLSQL上面执行就报错无响应,然后卡住了半天动弹不了,非得重新登录plsql才生效,我猜猜是因为连接失效的缘故,经常碰到这种情况,还没有影响工作效率和工作心情的。

1,去查看以下CONNECT_TIME的连接时间

SQL> select * from dba_profiles t wheret.resource_name='CONNECT_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE_TYPE LIMIT

-------------------------------------------------------------- -----------------------------------------------------

DEFAULT                        CONNECT_TIME                    KERNEL        UNLIMITED

MONITORING_PROFILE            CONNECT_TIME                    KERNEL        DEFAULT

TMPOPT                        CONNECT_TIME                    KERNEL        DEFAULT

MYPROFILE                      CONNECT_TIME                    KERNEL        DEFAULT

SQL>

看到有4个,那如何找到powerdesk用户所属于的那个profile呢?去查看当前用户的CONNECT_TIME

SQL> select * from user_resource_limits;

RESOURCE_NAME                    LIMIT

------------------------------------------------------------------------

COMPOSITE_LIMIT                  UNLIMITED

SESSIONS_PER_USER                UNLIMITED

CPU_PER_SESSION                  UNLIMITED

CPU_PER_CALL                    UNLIMITED

LOGICAL_READS_PER_SESSION        UNLIMITED

LOGICAL_READS_PER_CALL          UNLIMITED

IDLE_TIME                        UNLIMITED

CONNECT_TIME                    UNLIMITED

PRIVATE_SGA                      UNLIMITED

9 rows selected

SQL>

看到CONNECT_TIME是UNLIMITED,没有限制,那么为什么plsql连接会出现未响应的现象呢?

2,cmd里面去用sqlplus连接验证

sqlplus连接上,过去30分钟不操作,再次操作连接db,正常使用,看来这和Oracledb无关了,应该要去看看plsql的设置了

3,去plsql里面设置

进入plsql的Tools,再进入Preferences,然后选择左边的Connection选型,选择Check connection,如下图1.png所示:

PLSQL 经常自动断开失去连接的解决过程_工作效率

这会比较稳定一些,当然可能你PLSQL开一天不用,再进去会延时一会,但是短时间里面都不会失灵了。