[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 メーリングリストの案内