İşletim Sistemi Process ID’den Oracle’daki SESSION Bilgisine Ulaşmak

İşletim sistemi üzerinden yakaladığınız bir “PROCESS ID” nin Oracle tarafında çalıştırılan SQL bilgisine ulaşmak için aşağıdaki scripti kullanabilirsiniz.

SELECT T.SQL_ID, T.SQL_TEXT
FROM GV$PROCESS P, GV$SESSION S, GV$SQLAREA T
WHERE     P.ADDR = S.PADDR
AND S.SQL_ADDRESS = T.ADDRESS
AND S.SQL_HASH_VALUE = T.HASH_VALUE
AND P.SPID = &PROCESS_ID;

Eğer Oracle Veri tabanınız RAC değil ise aşağıdaki sorguyu kullanabilirsiniz.

SELECT T.SQL_ID, T.SQL_TEXT
FROM V$PROCESS P, V$SESSION S, V$SQLAREA T
WHERE     P.ADDR = S.PADDR
AND S.SQL_ADDRESS = T.ADDRESS
AND S.SQL_HASH_VALUE = T.HASH_VALUE
AND P.SPID = &PROCESS_ID;

Özellikle TOP SQL’leri incelerken anlık olarak işletim sistemi üzerinden PROCESS ID yakalayıp hangi sorgunun CPU COST’unun yüksek olduğunu hızlıca anlayabilirsiniz. Bu script 11gR1 ve 11gR2 ‘de test edilmiştir. Lütfen scriptleri üretim ortamında çalıştırmadan önce test sunucularınızda test ediniz.

Loading

Leave Your Comment