Hatena::Groupknocking

ELFの業務日誌 このページをアンテナに追加 RSSフィード

カレンダー
<< 2007/11 >>
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
最近のコメント

2007-11-13

[] PostgreSQLで実行中のSQL情報を取得する 13:37  PostgreSQLで実行中のSQLの情報を取得する - ELFの業務日誌 を含むブックマーク はてなブックマーク -  PostgreSQLで実行中のSQLの情報を取得する - ELFの業務日誌  PostgreSQLで実行中のSQLの情報を取得する - ELFの業務日誌 のブックマークコメント

PostgreSQLマニュアルに載っていたものだと思うのですが,PostgreSQLpostgresql.confで設定を行うことで実行中のSQL情報を取得することができるようになります(厳密には実行中のPostgreSQL関連のプロセス情報が取得できます).

実行中のSQLを取得するSQL

実行中のSQLを取得するSQLは下記のようになります.

注意すべきことはこのSQLで取得できる情報リアルタイムの測定ではなく,定期的にPostgreSQLが調べた結果になります.なので,むやみに実行してもあまり変化が起こらない場合があります.

SELECT
    procpid,
    start,
    now() - start AS lap,
    current_query
FROM
    (SELECT
        backendid,
        pg_stat_get_backend_pid(S.backendid) AS procpid,
        pg_stat_get_backend_activity_start(S.backendid) AS start,
        pg_stat_get_backend_activity(S.backendid) AS current_query
    FROM
        (SELECT pg_stat_get_backend_idset() AS backendid) AS S
    ) AS S
WHERE
    current_query <> '<IDLE>'
ORDER BY
    lap DESC;

ポイントとしてはpg_stat_get_backend_activity_start()でSQLの実行開始日時が取得できるので,それを元にORDER BYをかけ,実行時間が長いものが上にきるようにしています.また,<IDLE>を除外することで実際に実行しているSQLを取得するようにしています(これだけだとトランザクション中のIDLEはでてくることになります).

このSQLの実行結果が閲覧できる管理画面を持っておくとちょっとした調査なら気軽に行うことができるようになりますのでオススメです.

EllieEllie2011/05/26 17:19I'm out of league here. Too much brain power on dsiplay!

ymqmgrkcjuymqmgrkcju2011/05/27 18:29PnXVFO <a href="http://mbtcpmxoaxkm.com/">mbtcpmxoaxkm</a>

rspbcoouxvirspbcoouxvi2011/05/27 23:36FXUyO2 , [url=http://baiaeclplaou.com/]baiaeclplaou[/url], [link=http://ymvbzdaxmraj.com/]ymvbzdaxmraj[/link], http://hjzroitixcan.com/

rnygcplclernygcplcle2011/05/29 16:19Y9anFT <a href="http://tihftfhcndao.com/">tihftfhcndao</a>

uwwmoauwwmoa2011/06/01 21:55gkAMbN , [url=http://vdypregdusdc.com/]vdypregdusdc[/url], [link=http://scwlprdvuovq.com/]scwlprdvuovq[/link], http://bipkvfzzpdmf.com/

この日記のはてなブックマーク数