[pgsql-jp: 30259] VACUUMされない?

小野 心 shin-ono @ mdsnet.co.jp
2003年 6月 29日 (日) 04:49:01 JST


 ども、小野@mdsです。

 久しぶりの書き込みなのですが、VACUUMに関係したディスクの空き領域
に付いて不明な所があり、質問させて頂きました。

RedHat Linux 8.0
PostgreSQL 7.3.3

 の環境で、

CREATE TABLE StatementTest ( data character( 2048 ));

 によりテーブルを作成して、JDBC経由で

INSERT INTO StatementTest ( data ) VALUES ( ? );
※?には、2Kバイトのランダムテキストが入ります。

 を一気に20万回ほど行った後に、

DELETE FROM StatementTest;

 でテーブル内の全てのレコードを削除します。

 その時点で、pgdataの配下がテスト前より増えているのは当たり前なの
ですが、

vacuumdb -f -a

 のコマンドで実行しても、若干(1%ぐらい)しか領域が開放されていない
状態なのです。しかし、

DROP TABLE StatementTest;

 を行った後に、VAVUMEを行うとしっかりと領域が開放され、テスト前とほ
ぼ同じサイズになります。なお、他のバージョンでは、まだテストをしてい
ません。

 そこで、質問なのですが、これは、

・やってはいけないことなのか
・やり方が悪いのか
・仕様なのか
・DBのバグ(無いと思いますが)

 の、どれなのでしょうか?
 よろしくご教授下さい。



=====================================================

             Shin Ono(小野 心)      
              System Director

   MINOLTA DIGITAL SOLUTION CO.,LTD
   3-2-1 Kamiosaki, Shinagawa-ku, Tokyo 141-0021 
  TEL:03-5449-2003/FAX.03-5449-2010
-----------------------------------------------------
                      Mailto:shin-ono @ mdsnet.co.jp
                      http://www.mdsnet.co.jp/
=====================================================



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