[pgsql-jp: 36260] Re: JDBCバッチ更新による性能向上

koyama mlus @ hintmark.com
2005年 10月 25日 (火) 16:35:15 JST


k7-koyamaです。

> ちょっとお尋ねしたいことがあります。
> JDBCにPreparedStatementというクラスがありますが、このクラスのバッチ更新
> (addBatch()/executeBatch())による性能向上の程度を測定したことのある方っ
> ていらっしゃいますか?

測定した事ないですが、同じ内容のINSERT文などの連続使用でしたら、
通常のStatementよりも、こちらの方が推奨されていると思いますし、
今まで使った実感では、こちらの方が早いと思います。
丁度、似たような事をやっているのですが、文字コードの変換や
カラムデータの入力適正処理なども、併せてやってますので、
その文のオーバースペック処理があるため、正確な速度比較は
わかりません。参考にならないですね (^^;

スレッドを使って、並列挿入処理も可能かと思います。
前のバージョンですが、同じレコードのデータ更新が、
1秒〜30秒の変更や挿入だったため5つくらいのスレッドを
使い、挿入と更新を繰り返していたら、Postgresがうんともすんとも
言わなくなった記憶があります。
そのときは、VACUUMコマンドをかましながら、sleep を適度
にとってやることで、機嫌よく動いてくれました。

只、あくまでも動的な処理ですので、SQLJ を使った方が
もっと早いような気がします。
以前調べた時は、ベータだったですが、Postgres用のSQLJが
あったように記憶しています。



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