Disk Read를 많이하는 쿼리 찾기
내가 DB 장애로 골머리를 앓고 있으니...
웹개발자인 직원이 아래의 쿼리를 보내 왔다.
아무 생각없이 돌려 봤다.
full outer join을 써 놨다.
우리회사에서 초당 업데이트가 70번 이상 발생하는 최강의 복잡도와 Lock이 최상인 테이블 두개를 붙여놨다.
결국 과거에 작업을 하고 뒤처리를 안한것이다. ㅠ.ㅠ
나도 그 직원도 서로 잊어버린 결과라고나 할까.
...
SELECT Disk_Reads DiskReads, Executions, SQL_Text SQLText
FROM
(
SELECT Disk_Reads, Executions, LTRIM(SQL_Text) SQL_Text,
Operation, Options,
Row_Number() OVER
(Partition By sql_text ORDER BY Disk_Reads * Executions DESC)
KeepHighSQL
FROM
(
SELECT Avg(Disk_Reads) OVER (Partition By sql_text) Disk_Reads,
Max(Executions) OVER (Partition By sql_text) Executions,
sql_text, p.operation,p.options
FROM v$sql t, v$sql_plan p
WHERE t.hash_value=p.hash_value AND p.operation='TABLE ACCESS'
AND p.options='FULL' AND p.object_owner NOT IN ('SYS','SYSTEM')
AND t.Executions > 1
)
ORDER BY DISK_READS * EXECUTIONS DESC
)
WHERE KeepHighSQL = 1
AND rownum <=30;
'프로그래밍??? > 오라클' 카테고리의 다른 글
LOB Index에 Nologging 설정하기 - LOB SEGMENT 생성 GUIDE (0) | 2015.04.03 |
---|---|
ORA-29275 : 부분 다중 바이트 문자 (0) | 2015.03.19 |
함수에 권한 주기 (0) | 2015.01.20 |
ORA-01000: 최대 열기 커서 수를 초과‎ (0) | 2012.04.10 |
RAC 재시작 관련 사항 (0) | 2012.04.10 |