読者です 読者をやめる 読者になる 読者になる

crmprogrammer38の日記

プログラマのメモ

【TERADATA】 1件ずつinsertは性能が著しく落ちるよ

TERADATAへのデータロードは、ファイルからであれば、FASTLOAD、MULTILOADなどを使うと思います。

 

TERADATAとの連携用にETLツールなどを購入して他のデータベースから直接取得したデータをTERADATAに入れたいなんてのもあって

ODBC接続

JDBC接続

が用意されている場合は、1件ずつ処理すると、異常に遅いので注意。

ETLツールによっては一度にまとめてinsertとかupdateできるので、なるべくまとめてinsertやupdateを実行するようにETLを作ろう。

 

もちろん、自分でデータロード処理のプログラムを書く場合も1件ずつinsertを発行しないように注意する。

例えばjavaであれば、PreparedStatementとexecuteBatchを使用することで大分早くなる。TERADATAに関していえば、addBatchでつめこめるだけつめこむと性能があがる。もちろんjavaのヒープサイズは多めにとっておかないと、メモリーエラーの可能性がありますけど。