Veritabanın performansını izlemek veya anlık lockları bulup kill etmek için ya da modifiye etmek için aşağıdaki sorgulardan faydalanabilirsiniz.
SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state FROM pg_stat_activity WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';
Yukarıdaki komutta 5 dakikadan uzun süren sorguları getirir.Aşağıdaki komut yardımı ile ExclusiveLock olan sorguları bulmanıza yardımcı olur.
SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid where mode ='ExclusiveLock';
Yukarıdaki sorgular yardımı ile sorgunuzu buldunuz ve sorgunuza ait pid(processes id) değerini öğrendikten sonra aşağıdaki komut yardımı ile durdurabilirsiniz.
SELECT pg_cancel_backend (__ pid__);
Sorguyu tamamen pg_cancel_backend komutunu kullanarak durdurmak birkaç saniye sürebilir .
Yada aşağıdaki komutu kullanarak direk o session’ı kill edebilirsiniz .
SELECT pg_terminate_backend (__ pid__);
pg_terminate_backend komutu tutarsızlığa neden olabilir , dikkatli kullanmanızı tavsiye ederim.
533 total views, 2 views today