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

Hideaki Fuzisawa fhideaki @ pk.highway.ne.jp
2005年 10月 25日 (火) 20:39:00 JST


藤沢です。

>パーシング回数を減らす事で高速化を図るクラス
>(以下、ドキュメントに従い「インタフェース」とします)ですね。
>相手がどのようなDBでもこのインタフェースの動きは
>同じでしょうから、使い方を間違っていなければ
>このインタフェースを使わずにプログラムを書いた場合より
>SQL文のパース処理時間分は確実に速くなっていると思います。
インターフェースは単にインターフェースの既定をしているだけなので
内部実装は全く違った問題です。
ドライバの実装によってパフォーマンス等は変化します。

>・・・数10%程度の性能向上を期待していたのですが、微妙な結果です。
>テストのやり方に問題がある可能性もありますが。
>かなり激しくI/Oが飛びましたので、I/Oに余裕のある環境ならもう少し差が開く
>かもしれません。
ざっと見ただけですが8.0のJDBCドライバを見ると内部的には通常の
executeQueryの実行と
executeBatchの実行の差は「一度の呼び出しで複数の文を実行するかどうか」という
だけの
ようです。つまりexecuteBatchは内部でexecuteQueryと同様の操作をループで繰り返
しています。
パフォーマンスにあまり差が出ないのはそういうことではないでしょうか。





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