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

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 4月 24日 (水) 10:41:16 JST


  杉田です。

From: "Kumakiri, Akira" <gorou @ ekuma.com>
Subject: [pgsql-jp: 25680] Re: ラージオブジェクトの削除後の領域開放
Date: Wed, 24 Apr 2002 10:21:05 +0900

;;; >blob型でデータを挿入した領域はvacuumコマンドでも開放されないのでしょうか?
;;; 
;;; はい。明示的に開放する必要があります。

  当然これはされていて、Windows2000 では、領域開放されないと言われているのだと
していました。

;;; どのようにlob型にアクセスされているかわかりませんが、私の場合はRedHat Linuxで、
;;; JDBC経由でアクセスしていますが、以下のようにしています。
;;; 
;;; create table image (name text,raster oid) の場合、
;;; 
;;; LargeObjectManager lom = ((org.postgresql.Connection)connM).getLargeObjectAPI();
;;; 
;;; int raster = rs.getInt("raster");
;;; lom.delete(raster);
;;; 
;;; 次にテーブルのoidを含んだレコードを消します。

  場合によりますが、自前のテーブルで BLOB の OID を保存しているときに、レコー
ド削除時にトリガーで BLOB を削除するように定義しておく手もあります。


Kenji Sugita
sugita @ sra.co.jp



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