はじめに
PostgreSQLを勉強するにあたり、構築や運用で必要そうな事を備忘録として残しました。
本記事は、stats collectorプロセスにより収集されるアクセス統計情報の概要について記載しています。
前提
PostgreSQL 13 を使用しています。
アクセス統計情報について
アクセス統計情報は、サーバ全体の活動状況についての統計情報となります。「統計情報コレクタ (stats collector )」によって自動的に収集されます。アクセス統計情報の確認は、定義済みのビューや関数を使用します。
- アクセス統計情報
- stats collectorプロセスにより収集
- テーブル / カラム統計情報
- ANALYZEにより収集

図. stats collector プロセス
関連パラメータ
表にアクセス統計情報に関連するパラメータを記載します。これらの値は、postgresql.confで設定を行います。
表.アクセス統計情報の関連パラメータ
パラメータ | 説明 |
---|---|
track_counts | テーブルおよびインデックスアクセスに関する統計情報を収集するか制御する ※デフォルトで有効 |
track_activities | 各セッションで、「実行中のコマンドに関する情報」と「そのコマンドの実行時刻収取」を有効にする。すべてのサーバプロセスで現在実行されているコマンドを監視可能です ※デフォルトで有効 |
stats_temp_directory | 統計情報データを一時的に格納する場所を指定します。 ※デフォルは「pg_stat_temp」 |
trac_functions | ユーザ関数の呼び出し数と費やされた時間の追跡を有効にします。 ※デフォルトは「none」 |
下図は、postgresql.conf内のアクセス統計情報に関連するパラメータとなります。

図. postgresql.conf の関連パラメータ
一時ファイル
統計情報コレクタ (stats collector)は、バックエンドプロセスとの情報のやり取りを、一時ファイル「$PGDATA/pg_stat_tmp」に格納します。

図. pg_stat_tmpディレクトリ
標準統計情報ビュー
主なアクセス統計情報ビューをまとめています。
「pg_stat_sys_tables」と「pg_stat_user_tables」の内容はすべて、「pg_stat_all_tables」に内包されます。
表. アクセス統計情報ビュー
ビュー | 説明 | 利用目的 |
---|---|---|
pg_stat_activity | バックエンドプロセス単位に、クエリの状態やプロセスの現在の活動に関連した状態を表示 | 問題のあるクエリの確認、長時間経過しているSQLの調査、 ロック待ち状態のSQLの調査 |
pg_stat_database | データベース毎の統計情報を表示。各テーブルの詳細は、pg_stat_user_tables等を利用 | キャッシュヒット率を確認す |
pg_stat_bgwrite | バックグラウンドライタに関するデータベースクラスタ全体の統計情報を表示 | チェックポイントの頻度の確認、キャッシュによる共有メモリ不足の確認 |
pg_stat_all_tables | テーブル毎の統計情報を表示 | テーブルの利用頻度やインデックスの利用状態の確認 |
pg_statio_all_tables | テーブル毎のブロック単位のI/Oに関する 統計情報を表示 | テーブルにおけるI/Oについての確認 ※ディスクアクセス量とは異なる |
pg_stat_all_indexes | インデックス毎のアクセスに関する統計情報を表示 | 使用していないインデックスの特定 |
pg_statio_all_indexes | インデックス毎のI/Oに関する統計情報を表示 | インデックスにおけるI/Oについての確認 ※ディスクアクセス量とは異なる |
以下は、pg_stat_sys_tablesビューがpg_stat_all_tablesの内容を出力していることが伺えます。

図. pg_stat_sys_tablesの内容
関連記事一覧
PostgreSQL : 標準統計ビューの内容
PostgreSQL : アクセス統計情報 「サーバプロセス」
PostgreSQL : アクセス統計情報 「データベース」
PostgreSQL : アクセス統計情報 「テーブル」
PostgreSQL : アクセス統計情報 「チェックポイントやバックグランドライタ」
PostgreSQL : アクセス統計情報 「テーブル毎のブロックI/O」
PostgreSQL : アクセス統計情報 「インデックス」
PostgreSQL : アクセス統計情報 「インデックスI/O」
参考文献
1. 勝俣 智成, 佐伯 昌樹, 原田 登志 (2018)「[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則」技術評論社
2. 河原 翔 (2014)「LPI-Japan OSS-DB Gold 認定教材 PostgreSQL 高度技術者育成テキスト」エヌ・ティ・ティ・ソフトウェア株式会社
3. OSS-DB道場