[pgsql-jp: 25461] Re: deleteにすごく時間がかかる現象について

kiyoshi.yoshida kiyoshi.yoshida @ mail.toyota-shokki.co.jp
2002年 3月 28日 (木) 17:48:04 JST


垣谷殿、フォロー有り難うございます。
吉田です。

> > create table history(mykey serial primary key, 
> > 	time timestamp default current_timestamp, msg text);
> > 上記のテーブルで、20万件ほどの行を削除しようとすると処理時間に2,3時間か
> > かってしまいます。
> > 実現したいことは、このテーブルから20万件を超える行はtimeソート順に古い物
> > から削除したい、ということです。(表現がつたなくて申し訳ありません)
> > そのためのSQL文は、以下のように実施してみました。
> > SQL文:
> > delete from history where mykey in(select mykey from history order by
> > time desc offset 200000);
> > 
> > 処理時間をもっと速くする方法(SQL文を変更するとか)はないのでしょうか。
> > (ハードを交換することは今のところ対応できない状況です)
> time に index を作成してみては如何ですか?
indexは作成してあります。

> 増強予定が無くても一応ハードの情報があったほうがいいですよ。
そうですね。書き忘れていました。
CPU:	PentiumIII 700MHz
MEMORY:	256Mbyte
HDD:	IDE UDMA33
です。

ちなみに今postgresql.confの設定で
sort_memを4096にしてみて試していますがあまり効果がなさそうな様子です。

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




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