Oracle数据库游标数总结

各用户的打开游标总数
SELECT A.USER_NAME, COUNT(*) FROM V$OPEN_CURSOR A GROUP BY A.USER_NAME; 

查找数据库各用户各个终端的缓存游标数
SELECT AA.USERNAME, AA.MACHINE, SUM(AA.VALUE) 
FROM (
SELECT A.VALUE, S.MACHINE, S.USERNAME 
FROM V$SESSTAT A, V$STATNAME B, V$SESSION S 
WHERE A.STATISTIC# = B.STATISTIC# AND S.SID = A.SID AND B.NAME = 'session cursor cache count') AA 
GROUP BY AA.USERNAME, AA.MACHINE 
ORDER BY AA.USERNAME, AA.MACHINE;

查找数据库各用户各个终端的打开游标数
SELECT AA.USERNAME, AA.MACHINE, SUM(AA.VALUE)
FROM (
SELECT A.VALUE, S.MACHINE, S.USERNAME 
FROM V$SESSTAT A, V$STATNAME B, V$SESSION S 
WHERE A.STATISTIC# = B.STATISTIC# AND S.SID = A.SID AND B.NAME = 'opened cursors current') AA 
GROUP BY AA.USERNAME, AA.MACHINE 
ORDER BY AA.USERNAME, AA.MACHINE;

 


查看游标使用情况
select o.sid, osuser, machine,o.sql_id,o.sql_text,o.cursor_type, count(*) num_curs 
from v$open_cursor o, v$session s 
where user_name like 'BIM%' and o.sid = s.sid 
group by o.sid, osuser, machine,o.sql_id,o.sql_text,o.cursor_type 
order by num_curs desc;

 

 

查看当前打开的游标数目
select count(*) from v$open_cursor; 
查看缓存游标数目
show parameter session_cached_cursor


 SELECT 'session_cached_cursors' PARAMETER,
          LPAD(VALUE, 5) VALUE,
           DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE
      FROM (SELECT MAX(S.VALUE) USED
              FROM V$STATNAME N, V$SESSTAT S
             WHERE N.NAME = 'session cursor cache count'
               AND S.STATISTIC# = N.STATISTIC#),
           (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors')
    UNION ALL
  SELECT 'open_cursors',
          LPAD(VALUE, 5),
          TO_CHAR(100 * USED / VALUE, '990') || '%'
    FROM (SELECT MAX(SUM(S.VALUE)) USED
            FROM V$STATNAME N, V$SESSTAT S
           WHERE N.NAME IN
                 ('opened cursors current', 'session cursor cache count')
             AND S.STATISTIC# = N.STATISTIC#
           GROUP BY S.SID),
          (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors');
SQL>  SELECT 'session_cached_cursors' PARAMETER,
          LPAD(VALUE, 5) VALUE,
           DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE
      FROM (SELECT MAX(S.VALUE) USED
              FROM V$STATNAME N, V$SESSTAT S
             WHERE N.NAME = 'session cursor cache count'
               AND S.STATISTIC# = N.STATISTIC#),
           (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors')
    UNION ALL
  SELECT 'open_cursors',
          LPAD(VALUE, 5),
          TO_CHAR  2    3    4    5    6    7    8    9   10   11   12  (100 * USED / VALUE, '990') || '%'
    FROM (SELECT MAX(SUM(S.VALUE)) USED
            FROM V$STATNAME N, V$SESSTAT S
           WHERE N.NAME IN
                 ('opened cursors current', 'session cursor cache count')
             AND S.STATISTIC# = N.STA 13   14   15   16   17  TISTIC#
           GROUP BY S.SID),
          (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors'); 18   19  

PARAMETER	       VALUE		    USAGE
---------------------- -------------------- -----
session_cached_cursors	  50		     100%
open_cursors		 300		      18%

SQL> 
 查询游标使用排名
 select SID,count(*) from v$open_cursor O WHERE O.user_name like 'BIM%' GROUP BY O.SID
ORDER BY 2 DESC;
----查询游标使用情况以及游标最大数----
SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR
FROM V$SESSTAT A, V$STATNAME B, V$PARAMETER P
WHERE A.STATISTIC# = B.STATISTIC#
AND B.NAME = 'opened cursors current'
AND P.NAME = 'open_cursors'
GROUP BY P.VALUE;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值