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

TANIDA Yutaka tanida @ sraoss.co.jp
2005年 10月 25日 (火) 15:10:32 JST


谷田です。

On Tue, 25 Oct 2005 11:41:02 +0900
"EBIHARA Yuichiro" <ebihara @ iplocks.co.jp> wrote:

> 外部ソースからある程度大量のデータをINSERTするので、処理内容的にはバッチ
> にうってつけのはずなんですが、RDBMSによって効果があったりなかったりしま
> すので。

それは、JDBCドライバの実装によるのではないかと思います。確かにインターフェー
スとしてはBatch関連は大量データ投入に適していますが、実装に関してどうな
るかは規定されていません。

たとえば、PreparedStatementを使っても実際にはprepareを使わないドライバが
あります。さらには7.2以前のPostgreSQLにはPREPARE文自体実装されていません。

> <環境>
> PostgreSQL 7.3.4

 7.3付属のJDBCドライバは、デフォルトではprepareを使わないタイプのドライ
バに属します。使用するように設定するためには
org.postgresql.PGStatement#setUseServerPrepare()メソッドを使います。
PostgreSQLのドライバの場合、取得するStatementが普通にこのインターフェー
スを実装しています。

-- 
TANIDA Yutaka <tanida at sraoss.co.jp>





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