★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

20.9. 実行時統計情報 #

20.9.1. 累積的な問い合わせ及びインデックスの統計情報 #

これらのパラメータは、サーバ全体の累積的な統計情報収集機能を制御します。 統計情報収集が有効ならば、生成されるデータはpg_statpg_statio系のシステムビュー経由でアクセス可能です。 詳細は第28章を参照してください。

track_activities (boolean) #

各セッションで実行中のコマンドに関する情報と、そのコマンドの識別子および実行開始時刻の収集を有効にします。 このパラメータはデフォルトで有効です。 有効な場合であっても、スーパーユーザ、pg_read_all_statsロール権限を持つロール、報告対象のセッション(権限を持つロールに所属するセッションを含みます)の所有者のみから可視である点に注意してください。 このためセキュリティ上の危険性はありません。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。

track_activity_query_size (integer) #

pg_stat_activity.queryフィールドに対し、それぞれの活動中のセッションで現在実行されているコマンドを追跡記録するため予約されるメモリ量を指定します。 この値が単位なしで指定された場合は、バイト単位であるとみなします。 デフォルトの値は1024バイトです。 このパラメータはサーバ起動時のみ設定可能です。

track_counts (boolean) #

データベースの活動についての統計情報の収集を有効にします。 収集される情報を自動バキュームデーモンが必要とするため、このオプションはデフォルトで有効です。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。

track_io_timing (boolean) #

データベースによるI/O呼び出しの記録を有効にします。 このパラメータはデフォルトで無効になっています。その理由は、現時点の時刻をオペレーティングシステムに繰り返し問い合わせるので、プラットフォームによっては深刻な負荷の原因になるからです。 使用しているシステムにおける記録の負荷を計測するためpg_test_timingツールが使用できます。 I/O呼び出し情報は、pg_stat_databasepg_stat_ioに表示されます。 BUFFERSオプションが設定されている時はEXPLAIN の出力、VERBOSEオプションが設定されている時はVACUUMの出力、log_autovacuum_min_durationが設定されている時はpg_stat_statementsにより表示されます。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。

track_wal_io_timing (boolean) #

データベースによるWAL I/O呼び出しの記録を有効にします。 このパラメータはデフォルトで無効になっています。その理由は、現時点の時刻をオペレーティングシステムに繰り返し問い合わせるので、プラットフォームによっては深刻な負荷の原因になるからです。 使用しているシステムにおける負荷のタイミングを計測するためpg_test_timingツールが使用できます。 I/O呼び出し情報は、pg_stat_walに表示されます。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。

track_functions (enum) #

関数の呼び出し数と費やされた時間の追跡を有効にします。 手続き言語関数のみを追跡するためにはplと指定してください。 SQL関数、C言語関数も追跡するためにはallと指定してください。 デフォルトは、統計情報追跡機能を無効にするnoneです。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。

注記

呼び出す問い合わせ内にインライン化できる位単純なSQL言語関数は、この設定と関係なく、追跡されません。

stats_fetch_consistency (enum) #

トランザクション内で累積的統計に複数回アクセスする場合の動作を決定します。 noneに設定すると、各アクセスは共有メモリからカウンタを再フェッチします。 cacheに設定すると、オブジェクトの統計への最初のアクセスは、pg_stat_clear_snapshot()が呼び出されない限り、トランザクションが終了するまでこれらの統計をキャッシュします。 snapshotに設定すると、最初の統計アクセスは、pg_stat_clear_snapshot()が呼び出されない限り、トランザクションが終了するまで現在のデータベースでアクセス可能なすべての統計をキャッシュします。 トランザクション内でこのパラメータを変更すると、統計情報のスナップショットは破棄されます。 デフォルトはcacheです。

注記

noneは、システムの監視に最も適しています。 値が一度しかアクセスされない場合、最も効率的です。 cacheは、繰り返しアクセスによって同じ値が生成されることを保証します。 これは、自己結合などを含むクエリで重要です。 snapshotは、統計情報を対話的に検査する場合に便利ですが、特に多くのデータベースオブジェクトが存在する場合にはオーバーヘッドが高くなります。

20.9.2. 統計情報の監視 #

compute_query_id (enum) #

組み込みの問い合わせ識別子の計算を有効にします。 問い合わせ識別子は、pg_stat_activityビュー、EXPLAIN、あるいはlog_line_prefixパラメータが設定されていればログに出力されます。 pg_stat_statements拡張も問い合わせ識別子の計算が必要です。 組み込みの計算が許容できなければ、外部モジュールを代わりに利用することができることに注意してください。 この場合、組み込みの計算は常に無効にしなければなりません。 有効な値は、off(常に無効)、on(常に有効)、pg_stat_statementsのようなモジュールによって自動的に有効になるauto、自動リグレッションテストを機能させるために、問い合わせ識別子がEXPLAIN出力に表示されないことを除けばautoと同じ効果を持つregressです。 デフォルトはautoです。

注記

一つの問い合わせ識別子のみが計算されて表示されることを確実にするために、問い合わせ識別子を計算する拡張は、問い合わせ識別子がすでに計算済みのときにエラーを生じるようにすべきです。

log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean) #

各問い合わせに対し、対応するモジュールの性能に関する統計情報をサーバログに出力します。 これは、Unixのgetrusage()オペレーティングシステム機能に類似した、雑なプロファイリング手段です。 log_statement_statsは文に関する統計情報全体を、この他はモジュール毎の統計情報を報告します。 log_statement_statsとモジュール毎のオプションを一緒に有効にすることはできません。 デフォルトでこれらのオプションはすべて無効です。 スーパーユーザと、適切なSET権限を持つユーザのみがこの設定を変更することができます。