Instiq

2性能監視

問題集で演習する →用語集を見る →
  • 2.1アクセス統計情報

    サーバーの「今」を映す統計ビュー群を学びます。接続中セッションを可視化するpg_stat_activity(wait_event_type/wait_event)、ロック競合を追うpg_locks、DB単位の集計を持つpg_stat_database、テーブルアクセス傾向のpg_stat_all_tables、物理I/Oのpg_statio_all_tables、WALアーカイブのpg_stat_archiver、チェックポイント/バッファ書き出しのpg_stat_bgwriterを押さえます。

  • 2.2テーブル/カラム統計情報

    プランナが実行計画を選ぶ根拠となるpg_statistic/pg_statsを学びます。カラムごとのnull_frac・n_distinct・most_common_vals・most_common_freqs・histogram_bounds・correlationの意味と、統計の精度を左右するdefault_statistics_target、キャッシュ規模の見積もりに使うeffective_cache_size、複数カラム相関を捉える拡張統計(CREATE STATISTICS・pg_statistic_ext)を押さえます。

  • 2.3クエリ実行計画

    実行計画を読み解く力を学びます。計画を可視化するEXPLAIN/実際に実行して実測値も出すEXPLAIN ANALYZE、結合戦略のNested Loop・Hash Join・Merge Join、スキャン種別のSeq Scan・Index Scan・Bitmap Scan、集計のウィンドウ関数、複数プロセスで処理を分担するパラレルクエリ(max_worker_processes・max_parallel_workers_per_gather)を押さえます。

  • 2.4その他の性能監視

    サーバー全体・クエリ単位の追加監視手段を学びます。拡張機能をサーバー起動時に読み込むshared_preload_libraries、実行計画を自動的にログへ出すauto_explain、クエリ単位の累積統計を持つpg_stat_statements、遅いクエリ・自動VACUUM・ロック待ち・チェックポイント・一時ファイルをログへ記録するlog_min_duration_statement・log_autovacuum_min_duration・log_lock_waits・log_checkpoints・log_temp_filesを押さえます。