Oracle

오라클 cpu 사용량 높은 프로세스 쿼리 조회 (How to query oracle cpu usage high process query)

민이단 2023. 6. 29. 12:49

가끔 사이트에서 서버 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에서 쉽게 조회가 가능하지만, 도입이 안된 사이트에서는 직접 이렇게 조회해서 쿼리를 추출하는 경우가 많다.