2017-10-05 1 views
1

私は、informixデータベース内でhibernateを使用してバッチ挿入および更新を試みています。 しかし、挿入物が実際にバッチ処理されているかどうかはわかりません。 SQL文のログを取得するために設定する必要があるプロパティはありますか。 例:mysqlで、私たちはprofileSQL = trueを使用します。 接続URLにSQLIDEBUG = filePathを設定しようとしましたが、ファイルが読み込めませんでした。挿入と更新がバッチ処理されているかどうかを確認できるように、SQLログを取得する他の方法はありますか?Informixデータベース内のHibernate一括挿入(SQLログトレースの取得)

また、どのインフォメーション・ドライバ・バージョンがバッチ挿入と更新を適切に行うか。 MySqlでは、5.1.18が正しくバッチ処理されている間にMySqlコネクタ5.1.28が正しくバッチ処理されていないことがわかりました。 informixに類似の問題はありますか?

答えて

4

SQLIDEBUGファイルを読み込む(デコードする)には、Informix CSDKパッケージに含まれているツールが必要です。 Windowsの名前は「sqliprt.exe」、Linux/Unix/everythingelseは「sqliprint」 CSDKは通常エンジンとともにインストールされているため、IDSサーバーのbinディレクトリにある可能性があります。

簡単な例:

D:\Infx\work\Java>javac batchdec.java 

D:\Infx\work\Java>del sqlitra* 

D:\Infx\work\Java>java batchdec 
     257  0.000 
     258  0.000 
     259  0.000 
     260  0.000 



D:\Infx\work\Java>which sqliprt 
D:\infx\csdk410tc4\bin/sqliprt.exe 

D:\Infx\work\Java>sqliprt -notimestamp -tuple sqlitrace1507202847283.0 > sqlitrace.txt 

D:\Infx\work\Java> 

'sqlitrace.txtは' プレーンテキストファイルである必要があります。むしろ個人の挿入よりも

----- sqlitrace.txt ----- 
..... 
C->S (70)   
    SQ_ID 
     1 
    SQ_CURNAME 
     "_ifxc0000000000001" [18] 
    SQ_OPEN 
    SQ_PUT 
     Size of data row: 7 
     # rows..........: 4 
================================================================================ 
HEX DUMP: 
     0: c1 00 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 ................ 
    0x10: c1 00 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 ................ 

================================================================================ 
    SQ_EOT 

S->C (48)   
    SQ_INSERTDONE 
     0 
    Bigserial:0 
    SQ_DONE 
     Warning..: 0x10 
     # rows...: 4 
     rowid....: 261 
     serial id: 0 
    SQ_COST 
     estimated #rows: 1 
     estimated I/O..: 2 
    SQ_EOT 

:あなたはそれ以下のような任意のSQ_PUTメッセージが表示された場合は基本的にあなたがバッチ更新を行っていることを意味します。 最新のinformixドライバは、バッチ操作で動作する必要があります。最新のもの(4.10.9)に固執することをお勧めします。

これらは、MavenまたはIBMのダウンロードサイトから入手できます。

のGradle

compile group: 'com.ibm.informix', name: 'jdbc', version: '4.10.9' 

Mavenの私はどのバージョンを使用する必要があり、JDBC Informixドライバ を使用しています

<dependency> 
<groupId>com.ibm.informix</groupId> 
<artifactId>jdbc</artifactId> 
<version>4.10.9</version> 
</dependency> 
+0

? – ANKIT

+0

ifxjdbc \t JDBC \t 4.10.9である最新の、その1つのために行きます。 –