[pgsql-jp: 28415] Re: updateの性能を向上
shin honda
dev @ license.to
2002年 12月 21日 (土) 20:06:34 JST
まことと申します
先日dbi-japanで突っ込みを入れられたので参加しましたm(__)m
途中参加なので、検討外れな事を言ってたらすみません。
(一応最近のメールは目を通したつもりなのですが^^;)
> 現状、普通にupdateを使用してDBを更新しているのですが、どうも
> 望んだ性能が出ません。現在約40万件レコード登録してあるテーブル
> に対し、下記の様な方式でupdateを実行すると、約15分程度かかって
> しまいます。更新対象のレコード数はそれほど多くは無い(と言っても
> ばらつきはありますが)ので、可能ならば2〜3分程度の性能にしたいです。
> 更新対象のレコード数は、一度に500〜3000程度です。
>
> psql -h $hostname -d $database_name -c \
> "update $daily_db \
> set status='$condition_name' \
> where $tmp_db.ip_address = \
> $daily_pm_db_stat.ip_address and \
> $tmp_db.port_number = \
> $daily_pm_db_stat.port_number"
> (注) $daily_dbについては、は下記のprofile_dbスキーマ定義を参照してください。
>
> 最も最適な更新方法はあるのでしょうか?それとも、これは妥当な
> 性能なのでしょうか?
CPUやメモリ、ディスクの速度にもよるんでは?
> 開発環境は、
> Solaris8
> PostgreSQL 7.2.1
> gcc-2.95.3-sol8
> shからpsqlを直接使用しています。
基本的にperl書きなのでcでの利用の仕方はよくしりませんが
shから呼び出さずに、ライブラリを使用すれば
シェルとpsqlの起動時間
接続/認証にかかる時間
1レコード毎にcommitしている時間
の分は早くなると思うのですが...
---------+---------+---------+---------+---------+---------+
SHIN HONDA <makoto @ cpan.jp> "http://www.cpan.jp/"
<makoto @ fes-total.com> "http://www.fes-total.com/"
FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966
pgsql-jp メーリングリストの案内