2007. 5. 21. 09:37
데이터베이스/Oracle
full scan query 찾기
기존의 v$session_wait 의 "db file scattered read"
이용한 쿼리는 실제로 풀 스캔이 발생 해도
해당 이벤트가 발생이 안되는 관계로 찾고자 하는 값을 도출해 내기 힘듦
v$session_longops 를 이용하여 full 스캔하는 사용자와 쿼리를 찾는 쿼리.(8i 이상 가능)
SELECT a.username, a.SID, a.osuser, a.machine, a.program, a.status, b.opname,
b.start_time, b.last_update_time, c.sql_text
FROM v$session a, v$session_longops b, v$sqltext c
WHERE b.opname LIKE '%Table Scan%'
AND a.SID = b.SID
AND a.serial# = b.serial#
AND a.sql_address = c.address;
기존의 v$session_wait 의 "db file scattered read"
이용한 쿼리는 실제로 풀 스캔이 발생 해도
해당 이벤트가 발생이 안되는 관계로 찾고자 하는 값을 도출해 내기 힘듦
v$session_longops 를 이용하여 full 스캔하는 사용자와 쿼리를 찾는 쿼리.(8i 이상 가능)
SELECT a.username, a.SID, a.osuser, a.machine, a.program, a.status, b.opname,
b.start_time, b.last_update_time, c.sql_text
FROM v$session a, v$session_longops b, v$sqltext c
WHERE b.opname LIKE '%Table Scan%'
AND a.SID = b.SID
AND a.serial# = b.serial#
AND a.sql_address = c.address;