oracle参数open_cursors和session_cached_cursor详解

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%
复制代码
原文地址:https://www.cnblogs.com/shujuyr/p/13151011.html