SYNOPSIS
VACUUM [FULL] [FREEZE] [VERBOSE] [ 表 ] VACUUM [FULL] [FREEZE] [VERBOSE]は[ANALYZE テーブル [(列 [、...]を)]]
説明説明
VACUUMの回復はタプルによって占められるストレージスペースを削除しました。一般的なPostgreSQLの操作では、これらのタプルまたはタプルが既に時代遅れになった後DELETE UPDATEは、物理的に、それらが属するテーブルから削除されず、彼らはまだ完了前のVACUUMに存在します。したがって、我々は特に、テーブルの定期的な更新時に、定期的にVACUUMを実行している必要があります。
パラメータ、VACUUMの契約だけそのテーブルがある場合は何のパラメータ、各テーブルの現在のデータベースとのVACUUMの契約は、存在しない場合。
VACUUMは、ANALYZE ANALYZEを実行するために選択されたテーブルの各々に、次いで真空を実行し、第一。日常メンテナンススクリプトに関しては、これは非常に便利な組み合わせです。[ANALYZE参照分析の処理の詳細については(7)]。
シンプル(FULLなしの)VACUUMは、単にスペースを再利用することができて、再び使用することができます。読み取りおよび書き込みコマンドと通常の表の並列操作のこの形、排他ロックの要求がないからです。最小のディスクブロックのテーブル数を圧縮するようにVACUUMは、フルクロスタプルブロック移動を含むより広範な処理を行います。この形式はかなり遅いと排他ロックの時に治療テーブルの上に適用する必要があります。
FREEZEが早くとしてラベル付けされたタプルの原因となる特別な目的のオプションである「冷凍(冷凍)」、ではなく、彼らはすでにそれがマークされている場合、非常に古いなるまで待っているよりも。このコマンドが完了すると、同じデータベース上で実行中の他のトランザクションがない場合、システムは、データベース内のすべてのタプルが「凍結(冷凍)」であることを確認し、そう何のトランザクションID周回問題はありません、とデータベースが問題ではない時間ではありませんクリーンアップ。私たちは、FREEZE日常的な使用を使用することはお勧めしません。私たちは、テンプレートとユーザー定義データベース接続、またはを準備するだけで頭にそれを使用する場合は、他の完全に読み取り専用、および日常のデータベースメンテナンスVACUUM操作のために待機しません。詳細については、第21章、 ``定常的なデータベース保守「」を参照してください。
パラメータパラメータ
- FULL
-
あなたはより多くのスペースを復元することができますので、「完全に」クリーンを選択し、それはより多くの時間と、テーブルに排他ロックをかけるかかります。 - FREEZE
-
「凍結された。」ラジカルタプルを選択 - VERBOSE
-
各テーブルのクリーンアップの詳細レポートを印刷します。 - ANALYZE
-
オプティマイザのために更新される統計は、クエリを実行する最も効率的な方法を決定します。 - 表
-
テーブルの名前です(スキーマ修飾名)をクリーンアップするには。デフォルトでは、すべてのテーブルの現在のデータベースです。 - カラム
-
/フィールド名を解析するための特定の列。デフォルトでは、すべての列/フィールドです。
出力出力
あなたはVERBOSE宣言した場合、VACUUMは、現在処理されているテーブルを示す進行状況メッセージを発します。関連するすべての統計表が印刷されます。
注意注意します
我々は継続的に確保するために(少なくとも一度一泊)行VACUUMM(クリーンアップ)本番データベースの削除に失敗しました定期的にお勧めします。特にレコードの追加および削除の多数後、VACUUMの実装に影響を与えたコマンドテーブルをANALYZE良い習慣です。最近の変更とシステムカタログを更新し、計画のユーザークエリでPostgreSQLのクエリオプティマイザより良い選択をできるようになるそう。
私たちは日常的に使用FULLオプションはお勧めしませんが、例外的な状況で使用することができます。あなたはディスクスペースの使用量を減らすために、物理からリストを絞り込むことを期待して、テーブル内のほとんどの行を削除した後にその一例です。VACUUM FULLは、通常、単なるVACUUMよりもテーブルのサイズを縮小します。
以下、実施例
ここで、回帰のテーブル上のエグゼクティブVACUUM(変換)データベースの例です。
回帰=#のVACUUMは、VERBOSE onek ANALYZE。 INFO:掃除機「public.onek」 INFO:インデックスが「onek_unique1は、」今、14ページで1000個のタプルが含ま 3000個のインデックスタプルが削除されました:詳細を。 0インデックスページは、0が現在再利用可能で、削除されました。 CPU 0.01秒/ 0.08u秒は0.18秒経過しました。 INFO:インデックスが「onek_unique2は、」今、16ページで1000個のタプルが含まれています 詳細:3000個のインデックスタプルを除去しました。 0インデックスページは、0が現在再利用可能で、削除されました。 CPU 0.00s / 0.07u秒は0.23秒経過しました。 INFO:インデックスは現在、13ページで1000個のタプル含む「onek_hundred」 3000個のインデックスタプルが削除されました:詳細を。 0インデックスページは、0が現在再利用可能で、削除されました。 CPU 0.01秒/ 0.08u秒は0.17秒経過しました。 INFO:インデックス「onek_stringu1は、」今、48ページで1000個のタプルが含ま 詳細を:3000個のインデックスタプルを除去しました。 0インデックスページは、0が現在再利用可能で、削除されました。 CPU 0.01秒/ 0.09u秒は0.59秒経過しました。 INFO: "onekは":108ページで3000個のタプルを除去 DETAIL:CPU 0.01秒/ 0.06u秒は0.07秒経過しました。 INFO:「onekは」:143ページで3000リムーバブル、1000個の非リムーバブルタプル見つけ 0死んだタプルまだ削除することはできません。詳細は。 0未使用のアイテムポインタがありました。 0のページが完全に空になっています。 CPU 0.07s / 0.39u秒1.56秒経過しました。 INFO:分析"public.onek" INFO: "onek":36ページ、1000行をサンプリングし、 真空