web-dev-qa-db-ja.com

postgresqlデータベースで実行中のクエリのステータスを取得する方法

選択クエリが非常に長く実行されています。実行時間など、クエリのステータスを取得するにはどうすればよいですか?テーブルのデータにアクセスしているかどうか。

注:pg_stat_activityクエリはアクティブとして実行されています。待機状態ではありません。 Oracleのように、クエリのソース/ターゲットおよび処理ステータスを確認できます。postgresqlにはこのようなものがありますか?

30
Arun Padule

私が使用している@Anshuの回答に基づいて:

SELECT datname, pid, state, query, age(clock_timestamp(), query_start) AS age 
FROM pg_stat_activity
WHERE state <> 'idle' 
    AND query NOT LIKE '% FROM pg_stat_activity %' 
ORDER BY age;
13

これはまだできませんが、 the TODO にあります。

8
supyo

postgresのデータベースに関するクエリログを見つけることができます。

select *
from pg_stat_activity
where datname = 'yourdatabasename'

これにより、データベースのアクティブなクエリログが得られます。

4
Himanshu sharma