0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PostgreSQL10の統計情報

Last updated at Posted at 2021-06-13

勉強がてらPostgreSQL10の統計情報についてまとめ。

SQLの実行計画作成に使われる統計情報

マニュアル
収集される統計情報は、自動VACUUMやANALYZEの延長で更新される。

  • pg_class
    • テーブル、インデックス、シーケンス、ビュー、マテリアライズドビューなどの統計情報を保持。
  • pg_statistic
    • 列に関する統計情報を保持。実データが一部含まれるため、一般のユーザは読み取りできない。
      一般のユーザには、権限を持つ表に関連する行へのアクセス手段としてpg_statsを公開。

活動状況の監視を目的に収集される統計情報

統計情報コレクタにより収集される。

動的統計情報ビュー

ビュー名 説明
pg_stat_activity サーバプロセス毎に1行で、状態や現在の問い合わせ等の
プロセスの現在の活動状況に関連した情報を表示。
pg_stat_replication WAL送信プロセス毎に1行で、
マスターサーバが接続したスタンバイサーバへの
レプリケーションに関する統計情報を表示。
pg_stat_wal_receiver 1行で、受信サーバが接続したサーバから
WALレシーバに関する統計情報を表示。
pg_stat_subscription 1つのサブスクリプションにつき少なくとも1行の形式で、
サブスクリプションワーカに関する情報を表示。
pg_stat_ssl 接続(通常およびレプリケーション)あたり1行の形式で、
接続に使われるSSLの情報を表示。
pg_stat_progress_vacuum VACUUMを実行している(自動バキュームワーカプロセスを含んだ)
それぞれのバックエンドごとに1行の形で、現在の進捗を表示。

収集済み統計情報ビュー

ビュー名 説明
pg_stat_archiver WALアーカイバプロセスの
活動状況に関する統計情報を1行のみで表示。
pg_stat_bgwriter バックグラウンドライタプロセスの
活動状況に関する統計情報を1行のみで表示。
pg_stat_database データベース当たり1行の形で、データベース全体の情報を表示。
pg_stat_database_conflicts データベース毎に1行の形式で、
スタンバイサーバにおける復旧との競合のために
キャンセルされた問い合わせについてのデータベース全体の
統計情報を表示。
pg_stat_all_tables 現在のデータベースの各テーブルごとに1行の形で、
特定のテーブルへのアクセスに関する統計情報を表示。
pg_stat_sys_tables システムテーブルのみが表示される点を除き、
pg_stat_all_tablesと同じ。
pg_stat_user_tables ユーザテーブルのみが表示される点を除き、
pg_stat_all_tablesと同じ。
pg_stat_xact_[all|sys|user]_tables pg_stat_all_tablesに似ているが、
現在のトランザクションにて実施された処理結果をカウント。
pg_stat_[all|sys|user]_indexes 現在のデータベースのインデックスごとに1行の形で、
特定のインデックスへのアクセスに関する統計情報を表示。
pg_statio_[all|sys|user]_tables 現在のデータベース内のテーブルごとに1行の形で、
特定のテーブルに対するI/Oに関する統計情報を表示。
pg_statio_[all|sys|user]_indexes 現在のデータベース内のインデックスごとに1行の形で、
特定のインデックスに対するI/Oに関する統計情報を表示。
pg_statio_[all|sys|user]_sequences 現在のデータベース内のシーケンスごとに1行の形で、
特定のシーケンスに対するI/Oに関する統計情報を表示。
pg_stat_user_functions 追跡された関数ごとに1行の形で、
関数の実行に関する統計情報を表示。
pg_stat_xact_user_functions pg_stat_user_functionsと似ているが、
現在のトランザクション中に呼び出されたものだけをカウント。

簡単にまとめると、以下。

  • archiver/bgwriter/databaseの統計情報が存在。
  • tbale/indexごとにアクセス統計情報、I/O統計情報を保持。
  • sequenceはI/Oに関する統計情報のみ保持。
  • functionは関数ごとに統計情報を収集。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?