[pgsql-jp: 37626] VACUUM FULLの物理的なテーブルの切り詰め方について

miyamoto @ intellilink.co.jp miyamoto @ intellilink.co.jp
2006年 10月 31日 (火) 18:43:29 JST


宮本と申します。

VACUUM FULLの物理的なテーブルの切り詰め方について質問です。

VACUUM 
FULLを実行すると、物理的に不要領域が削除されてテーブルサイズが小さくなりますが、
不要領域が削除された分、不要領域より後ろの使用済み領域が、順々に前へ押し出されていくのでしょうか?
(不要領域より後ろの領域が全て移動するのでしょうか)
それとも、削除される不要領域のサイズに合わせて、適した使用済み領域を当てはめていき、テーブルサイズを小さくしているのでしょうか?
(不要領域より後ろの領域の一部のみが移動するのでしょうか)
それとも、全く別の方式でしょうか?

postgreSQLのマニュアルを参照すると、
『VACUUM 
FULLは、ブロック間でタプルを移動してディスクブロック数を最小にするなど、
テーブルを縮小するためにより高度な処理を行います。』

と記述されているのですが、詳細にどのような動作をしているのかが分かりません。

以上、宜しくお願い致します。



pgsql-jp メーリングリストの案内