Linux proses id ile ilgili veritabanındaki çalışan sorgunun tespiti
Linux üzerine kurulu Oracle veritabanlarında her bir kullanıcı proseslerinden , ilgili session bilgisine ulaşabilirsiniz. Çoğu zaman işletim sisteminde aşırı kaynak tüketen sorgunun ne olduğunun tespiti gerekmektedir. Bu tespit için linux üzerindeki ilgili prosesin proses id’si ile veritabanındaki session’ın spid bilgisi eşleştirilebilir.
Örneğin aşağıdaki örnekte olduğu gibi bir 32370 numaralı proses çok fazla cpu tüketmektedir. Bu prosesin hangi session’a ait olduğunun tespit edilip , ilgili sorgunun düzenlenmesi gerekmektedir.
Bu proses üzerinde hangi sorgu çalışıyor ve session bilgilerinin ne olduğunu öğrenmek için aşağıdaki sorguyu kullanabilirsiniz.
SQL> 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 = 32370;
Sorgudan dönen sql id bilgisini alarak bu sorgu ile ilgili mümkünse tunning task oluşturup, sorgunun iyileştirilmesini sağlayabilirsiniz.