問題背景:
情況是這樣的,很多開發同事的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開一天不用,再進去會延時一會,但是短時間里面都不會失靈了。