[pgsql-jp: 25674] Re: ラージオブジェクトの削除後の領域開放

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 4月 23日 (火) 19:16:02 JST


From: "kumiko naito" <naito @ mdsnet.co.jp>
Subject: [pgsql-jp: 25673] Re: ラージオブジェクトの削除後の領域開放
Date: Tue, 23 Apr 2002 18:12:13 +0900

;;; 早速の回答、有難うございます。

  念のためですが、Windows2000 で試したのではないので、Windows2000 でどうなるか
は分からないです。

;;; >   Windows2000 でなく FreeBSD 4.5 RELEASE での PostgreSQL 7.2.1 では次のよ
;;; う
;;; > に
;;; > なりました。BLOB にはアイコンが 9000 強入っています。
;;; >
;;; >     最初			  174285
;;; >     DELETE 後			  174285
;;; >     vacuumdb 後			  129707
;;; >     BLOB の再ロード&vacuumdb後	  164581
;;; >     再 DELETE 後		  164581
;;; >     再 vacuumdb 後		  130555
;;; >     BLOB の再々ロード&vacuumdb後  165645
;;; >
;;; 1度目のdelete&vacuumの後が129707
;;; 1度目のdelete&vacuumの後が130555
;;; という事は、delete&vacuumしても幾らかのごみは残ってしまうという事でしょうか
;;; ?

  以下の実行例のように、インデックスファイルのごみは VACUUM では削除されないの
も効いているようです。

;;; 画像&音楽データを頻繁に挿入&更新する処理を行いますので、不要になった領域は
;;; 開放してディスク容量を節約する必要があるのですが、回避方法はありませんでしょ
;;; うか?

  さらに続けてみます。他のことでデータベースを触っているので、さっきの直後の操
作ではないです。また、reindex は、ラージオブジェクトの oid を保存しているテー
ブルのみです。

			du      ls -l 「pg_largeobject に対応するファイル」
			======  ==========================================
    DELETE 後		171293  34152448
    vacuumdb 後		136851  0
    ロード&vacuumdb 後	172341  34152448
    REDINDEX 後		172197  34152448

    DELETE 後		172197  34152448
    vacuumdb 後		138203  0
    ロード&vacuumdb 後	173293  34152448
    REDINDEX 後		173077  34152448

  全部を DELETE しているので上記のようですが、実際には INSERT&DELETE が繰り返
されるので、多少の再利用領域の「空き」はできると思えます。定期メンテナンス時に、
バックアップからスクラッチでデータベース再構成して一新するとか。


Kenji Sugita
sugita @ sra.co.jp



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