pgAdminIIIで同様の機能があるのですが、ロック一覧を取得するのに凄い時間が掛かってしまい、まともにウィンドウが開かなくなったので、実行中のクエリーを取得するSQLを書いてみました。
このSQLを呼び出すシェルスクリプトを用意し、コマンドラインから実行できるようにしています。
アプリケーション名をトリムしているので、お好みに合わせて調整してください。
\pset columns 0; \pset border 0; \pset format 'wrapped' SELECT procpid AS "PID" , to_char(start,'MM/DD HH24:MI') AS "開始時間" , to_char(now() - start,'DD HH24:MI') AS "実行時間" , usename "user" , substr(application_name, 1, 10) as "name" , client_addr "IP" , regexp_replace(current_query,'\(\r\n|\r|\n|\t\)',' ','g') AS "クエリー" FROM ( SELECT S.pid AS procpid , S.query_start AS start , S.usename , S.application_name , S.client_addr , S.query AS current_query FROM ( SELECT * FROM pg_stat_activity WHERE state <> 'idle' ) AS S ) AS S WHERE current_query <> '' AND current_query NOT LIKE '%DISCARD ALL%' ORDER BY "実行時間" DESC , "PID";
0 件のコメント:
コメントを投稿