pg_stat_activityは、AnalyticDB for PostgreSQLインスタンスでアクティブなSQLクエリを識別できるシステムビューです。 pg_stat_activityビューには、各行にサーバープロセスとその関連セッションとクエリが表示されます。 pg_stat_activityを使用して、アクティブなSQLクエリの診断を分析および実行し、問題をトラブルシューティングできます。
注意事項
スーパーユーザーとレポートプロセスの所有者のみが、pg_stat_activityビューを使用する権限を持っています。
pg_stat_activityビューのフィールド
項目 | データ型 | 説明 |
datid | oid | データベースのオブジェクト識別子 (OID) 。 |
datname | name | データベースの名前。 |
procpid | integer | バックエンドプロセスのID。 説明 このフィールドは、AnalyticDB for PostgreSQL V4.3でのみサポートされます。 |
ピッド | integer | バックエンドプロセスのID。 説明 このフィールドはAnalyticDB for PostgreSQL V6.0でのみサポートされています。 |
sess_id | integer | セッションの ID |
usesysid | oid | ユーザーのOID。 |
usename | name | ユーザー名を指定します。 |
current_query | text | 実行中のクエリ。 既定では、クエリテキストの長さは最大1,024文字にすることができ、追加の文字は切り捨てられます。 クエリテキストにさらに多くの文字を表示するには、track_activity_query_sizeパラメーターを指定します。 説明 このフィールドは、AnalyticDB for PostgreSQL V4.3でのみサポートされます。 |
query | text | 最新のクエリ。The most recent query. 説明 このフィールドはAnalyticDB for PostgreSQL V6.0でのみサポートされています。 |
待っている | Boolean | 現在のクエリがロックを待機しているかどうかを示します。 有効な値:True と False。 |
query_start | datetime | アクティブなクエリが開始された時刻。 |
backend_start | datetime | 現在のバックエンドプロセスが開始された時刻。 |
backend_xid | xid | 現在のバックエンドプロセスのトランザクションID。 |
backend_xmin | xid | バックエンドのxmin地平線。 |
client_addr | inet | クライアントの IP アドレス。 |
client_port | integer | クライアントとバックエンド間の通信に使用されるTCPポート。 値が-1の場合は、UNIXソケットが使用されていることを示します。 |
client_hostname | text | クライアントのホスト名。 このフィールドは、 |
application_name | text | クライアント上のアプリケーションの名前。 |
xact_start | timestamptz | 現在のトランザクションが開始された時刻。 アクティブなトランザクションがない場合、このフィールドは空のままになります。 現在のクエリが最初のトランザクションの場合、このフィールドは |
waiting_reason | text | バックエンドが待っている理由。 バックエンドは、ロックまたはノード間のデータの複製を待っています。 |
です。 | text | バックエンドの現在の状態。 有効な値: active、idle、idle in transaction、idle in transaction (aborted) 、fastpath関数呼び出し、disabled。 説明 このフィールドはAnalyticDB for PostgreSQL V6.0でのみサポートされています。 |
state_change | timestampz |
説明 このフィールドはAnalyticDB for PostgreSQL V6.0でのみサポートされています。 |
rsgid | oid | リソースグループのOID。 |
rsgname | text | リソースグループの名前。 |
rsgqueueduration | interval | クエリがキューに入れられた時間。 |
例
次のステートメントを実行すると、過去30分以内にodps_inユーザーによって開始されたが完了していないクエリを見つけることができます。
select * from pg_stat_activity where xact_start < now() - interval '30 min' and waiting='f' and usename='odps_in';