他のバージョンの文書 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

28.4. 進捗状況のレポート

PostgreSQLは、何らかのコマンドの実行中に進捗状況をレポートする能力があります。 現在、進捗状況のレポートを唯一サポートしているのはVACUUMです。 将来的にサポートされるコマンドが拡大される可能性があります。

28.4.1. VACUUM進捗状況のレポート

VACUUMを実行するときはいつでも、pg_stat_progress_vacuumビューは、現在バキューム処理している(自動バキュームワーカプロセスを含む)それぞれのバックエンドごとに1行を格納します。 その情報を説明している以下のテーブルにおいて、何がレポートされ、どのように解釈するかについての情報を提供します。 進捗状況のレポートは、現在VACUUM FULLはサポートされておらず、VACUUM FULLを実行しているバックエンドはこのビューの一覧に表示されません。

表28.21 pg_stat_progress_vacuumビュー

説明
pidintegerバックエンドのプロセスID。
datidoidこのバックエンドが接続されたデータベースのOID。
datnamenameこのバックエンドが接続されたデータベース名。
relidoidバキューム処理が行われているテーブルのOID。
phasetext 現在のバキュームの処理フェーズ。表 28.22を参照してください。
heap_blks_totalbigint テーブルのヒープブロックの総数。 この数字は、スキャンの開始を基点としてレポートされます。 後に追加されるブロックは、このVACUUMによって処理されません(必要もありません)。
heap_blks_scannedbigint スキャンされたヒープブロックの数。 可視性マップがスキャンを最適化するために使用されるため、いくつかのブロックが検査されずに読み飛ばされます。 読み飛ばされたブロックはこの総数に含まれ、そのためこの数字はバキューム処理が完了した時に、最終的にheap_blks_totalと同じになります。 このカウンタは、フェーズがscanning heapの時にのみ増加します。
heap_blks_vacuumedbigint バキューム処理されたヒープブロックの数。 テーブルにインデックスが1つでも存在するなら、このカウンタはフェーズがvacuuming heapの時にのみ増加します。 無効なタプルが含まれていないブロックは読み飛ばされ、それゆえカウンタは時々大きな増加量で早送りされます。
index_vacuum_countbigint 完了したインデックスバキュームサイクルの数。
max_dead_tuplesbigint インデックスバキュームサイクルの実行に必要となる前に格納することが出来る、maintenance_work_memに基づいた、無効なタプルの数。
num_dead_tuplesbigint 最後のインデックスバキュームサイクルから収集された無効タプルの数。

表28.22 VACUUMのフェーズ

フェーズ説明
initializing VACUUMは、ヒープをスキャンし始める準備をしています。 このフェーズは、非常に短時間であると予想されます。
scanning heap VACUUMは、現在ヒープをスキャン中です。 必要であればそれぞれのページを切り取り、デフラグし、場合によってはフリーズ活動を実行します。 スキャンの進捗状況の監視にheap_blks_scanned列が使用できます。
vacuuming indexes VACUUMは、現在インデックスをバキューム処理中です。 テーブルにインデックスが存在する場合、ヒープが完全にスキャンされた後に、バキューム実行ごとに少なくとも1回発生します。 maintenance_work_memが、発見された無効タプルの数量を格納するのに不十分な場合は、バキューム実行ごとに複数回発生する可能性があります。
vacuuming heap VACUUMは、現在ヒープをバキューム処理中です。 ヒープのバキュームは、ヒープのスキャンと異なり、インデックスをバキューム処理するそれぞれのインスタンスの後に発生します。 heap_blks_scannedheap_blks_totalより少ない場合、システムはこのフェーズの完了後にヒープのスキャン処理に戻ります。 さもなければ、このフェーズの完了後にインデックスの整理を始めます。
cleaning up indexes VACUUMは、現在インデックスの整理処理中です。 これは、ヒープが完全にスキャンされ、インデックスとヒープが完全にすべてバキューム処理された後に発生します。
truncating heap VACUUMは、現在リレーションの終点の空のページをオペレーティングシステムに戻すためにヒープを削除しています。 これは、インデックスの整理処理後に発生します。
performing final cleanup VACUUMは、最終クリーンアップ処理をしています。 このフェーズの間、VACUUM空き領域マップをバキュームし、pg_classの統計情報を更新し、統計情報コレクタに統計情報を報告します。 このフェーズが完了した時、VACUUMは終了します。