PostgreSQL : アクセス統計情報【概要】

はじめに

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道場

コメントする