今天偷个懒,分享总结一下Oracle游标数的个实一些常用sql,下面一起来看看吧~
1. 查看系统游标数(最大游标数)
select value from v$parameter where name = open_cursors; show parameter open_cursors; 
2. 查看当前打开的用脚游标游标数目
select count(*) from v$open_cursor; 
3. 查看游标使用情况
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 = GLOGOWNER 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;
4. 修改Oracle最大游标数
根据游标占用情况分析访问数据库的香港云服务器程序在资源释放上是否正常,如果程序释放资源没有问题,则加大游标数。数数总
alter system set open_cursors=2000 scope=both; 
5. 各用户的云南idc服务商据库结打开游标总数
SELECT A.USER_NAME, COUNT(*) FROM V$OPEN_CURSOR A GROUP BY A.USER_NAME;
6. 查找数据库各用户各个终端的缓存游标数
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;
7. 查找数据库各用户各个终端的打开游标数
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;