[Oracle] SID, SPID 를 통해 수행하고 있는 쿼리 찾기
가끔 모니터링을 하다보면 OS의 cpu 혹은 memory를 많이 잡아먹는 Oracle session들이 발견된다.
그 넘들이 어떤 쿼리를 날리고 있는지 확인할 수 있다.
## oracle sid를 이용한 sql문 찾기
select a.username,a.program,a.machine,a.module,b.spid,a.sid,a.serial#,a.status,
c.sql_text
from v$session a,
v$process b,
v$sql c
where a.sid = '&sid'
and b.addr = a.paddr
and a.sql_hash_value = c.hash_value(+)
and a.sql_address = c.address(+);
## os pid를 이용한 sql문 찾기
select /*+ use_hash(a,b,c) */
a.username,a.program,a.machine,a.module,b.spid,a.sid,a.serial#,a.sql_hash_value,
d.PHYSICAL_READS, d.BLOCK_GETS,
c.sql_text
from v$session a,
v$process b,
v$sql c,
v$sess_io d
where b.spid = '&pid'
and b.addr = a.paddr
and a.sid = d.sid
and a.sql_hash_value = c.hash_value(+)
and a.sql_address = c.address(+);