oracle参数open_cursors和session_cached_cursor详解
SQL> show parameter open_cursors --每个session(会话)最多能同时打开多少个cursor(游标)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
SQL> show parameter session_cached_cursor --每个session(会话)最多可以缓存多少个关闭掉的cursor
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
session_cached_cursors integer 20
SQL> select count(*) from v$open_cursor; --是指当前实例的某个时刻的打开的cursor数目
COUNT(*)
----------
108
使用下面的sql判断'session_cached_cursors' 的使用情况。如果使用率为100%则增大这个参数值。
1 SELECT 'session_cached_cursors' PARAMETER, 2 LPAD(VALUE, 5) VALUE, 3 DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE 4 FROM (SELECT MAX(S.VALUE) USED 5 FROM V$STATNAME N, V$SESSTAT S 6 WHERE N.NAME = 'session cursor cache count' 7 AND S.STATISTIC# = N.STATISTIC#), 8 (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors') 9 UNION ALL 10 SELECT 'open_cursors', 11 LPAD(VALUE, 5), 12 TO_CHAR(100 * USED / VALUE, '990') || '%' 13 FROM (SELECT MAX(SUM(S.VALUE)) USED 14 FROM V$STATNAME N, V$SESSTAT S 15 WHERE N.NAME IN 16 ('opened cursors current', 'session cursor cache count') 17 AND S.STATISTIC# = N.STATISTIC# 18 GROUP BY S.SID), 19 (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors'); 20 21 22 PARAMETER VALUE USAGE 23 24 ---------------------- ---------- ----- 25 26 session_cached_cursors 50 20% 27 open_cursors 300 8%