쿼리 방법: 1. "v$open_cursor에서 count(*) 선택"을 사용합니다. 2. "SELECT A.USER_NAME,COUNT(*) FROM V$OPEN_CURSOR A GROUP BY A.USER_NAME"을 사용합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
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. 각 사용자에 대한 총 열려 있는 커서 수
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;
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;
추천 튜토리얼: "Oracle Tutorial
위 내용은 Oracle에서 커서를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!