찾을 수있는 쿼리는 무엇입니까? Oracle 인스턴스에서 현재 열린 커서를?Oracle에서 현재 열려있는 커서를 찾는 방법
또한이 데이터의 정확도/업데이트 빈도는 얼마입니까?
나는 세션,
찾을 수있는 쿼리는 무엇입니까? Oracle 인스턴스에서 현재 열린 커서를?Oracle에서 현재 열려있는 커서를 찾는 방법
또한이 데이터의 정확도/업데이트 빈도는 얼마입니까?
나는 세션,
총 커서 열린 오라클 10gR2의를 사용하고 있습니다 :
소스select a.value, s.username, s.sid, s.serial#
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';
: 지금까지 내가 V $ 뷰에서 쿼리를 알고 http://www.orafaq.com/node/758
는 가상 테이블을 기반으로 ("x $"표)가 SGA의 관련 부분을 직접 가리 키므로 그보다 정확하지 않을 수 있습니다. 그러나 이는 또한 그것이 특정 시점 (즉, 더티 읽기)임을 의미한다.
다음은 구문 분석 된 열린 커서를 찾는 방법입니다. v $ open_cursor 및 v $ session에 액세스 할 수있는 사용자로 로그인해야합니다.
COLUMN USER_NAME FORMAT A15
SELECT s.machine, oc.user_name, oc.sql_text, count(1)
FROM v$open_cursor oc, v$session s
WHERE oc.sid = s.sid
GROUP BY user_name, sql_text, machine
HAVING COUNT(1) > 2
ORDER BY count(1) DESC
;
if는 SQL 텍스트의 일부이므로 누출되는 응용 프로그램을 식별하는 데 유용 할 수 있습니다. 커서가 파싱되지 않으면 여기에 표시되지 않습니다. Oralce는 때로는 물건을 오래도록 열어 둘 것입니다.
사실, 이것은 복잡한 상황입니다. v $ open_cursor는 캐시 된 명령문을 표시합니다. 열린 커서 (커서/ResultSet 누출이있는 경우 해머가 발생할 수있는 리소스)는 '열린 커서'라는 이름의 행에있는 v $ sessstat에 있습니다. –
@Ollie : 그렇다면 누출 된 SQL 문을 식별하는 데 어떻게 도움이 될까요? –
이 선택은 커서를 연 실제 SQL 코드를 보여 주며 디버깅에 좋습니다! +1 –
select sql_text, count(*) as "OPEN CURSORS", user_name from v$open_cursor
group by sql_text, user_name order by count(*) desc;
이 저에게 적합합니다.
1) ID는 SYS의 DBA 접속 2)
select sum(a.value) total_cur, avg(a.value) avg_cur, max(a.value) max_cur,
s.username, s.machine
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'
group by s.username, s.machine
order by 1 desc;
오라클은 SQL과 문제가 촬영 제안이 문제에 대한 페이지가 있어야합니다.
"문제 해결 열기 커서 문제"http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/cursor.htm#OMADM5352
나는 이런 식으로 뭔가를 사용 :
select
user_name,
count(*) as "OPEN CURSORS"
from
v$open_cursor
group by
user_name;
이 '오픈 커서 현재'유유히 Oracle 테이블 서버에서 수확된다 그래서 당신이 당신의 어플리케이션에 대해 보았던 숫자는 당신이 실수 한 의미없이 비정상적으로 높을 수 있습니다. http://www.orafaq.com/node/758 참조 –