가끔 사이트에서 서버 cpu가 높은 쿼리에 대해 알려달라는 경우가 있다.
간단하게 cpu가 높은 쿼리를 추출하는 SQL이다.
============================================================================================
1.
SQL)
select c.sql_text
, b.SID
,b.SERIAL#
, b.machine
, b.OSUSER
, b.logon_time from v$process a, v$session b, v$sqltext c
where a.addr = b.paddr
and b.sql_hash_value = c.hash_value
and a.spid = '#spid'
order by c.PIECE
/
============================================================================================
============================================================================================
2.
SQL)
SELECT c.sql_fulltext, a.username
FROM v$session a, v$process b, v$sql c
WHERE a.paddr = b.addr
AND a.sql_address = c.address
AND b.spid='#spid'
/
============================================================================================
spid만 넣으면 조회가 가능하다. 2개 다 정상적으로 조회가 되지만 1번 SQL문은 실행 시키면 내가 실행한 process가
cpu를 많이 먹는 경우가 있어 2번으로 보통 조회한다.
요즘은 제니퍼나 셀파등 모니터링 tool로 WEB에서 쉽게 조회가 가능하지만, 도입이 안된 사이트에서는 직접 이렇게 조회해서 쿼리를 추출하는 경우가 많다.
'Oracle' 카테고리의 다른 글
| oracle 9i to 10g upgrade 작업 (0) | 2023.07.04 |
|---|---|
| timestamp 이용하여 테이블 복구(Table recovery using timestamp) (0) | 2023.07.04 |
| log file parallel write wait event (0) | 2023.07.03 |
| archive log 보관 주기 설정(Set the archive log retention period) (0) | 2023.07.01 |
| ORACLE 로그마이너 간단한 사용법(how to use ORACLE simplely logminer) (0) | 2023.06.29 |