问题背景:
情况是这样的,很多开发同事的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开一天不用,再进去会延时一会,但是短时间里面都不会失灵了。