2017-10-05 245 views
1

我想在informix數據庫中使用hibernate進行批量插入和更新。 但我無法找到插入是否實際上批處理。我們需要設置什麼屬性來獲取sql語句的日誌。 例如:在mysql中,我們使用profileSQL = true 我試圖在連接URL中設置SQLIDEBUG = filePath,但該文件是不可讀的。是否有任何其他方式來獲取SQL日誌,以便我可以驗證插入和更新是否批處理。Hibernate批量插入Informix數據庫(獲取sql日誌跟蹤)

此外,什麼informix驅動程序版本將批量插入和更新正常。在MySql中,我觀察到MySql連接器5.1.28沒有正確配料,而5.1.18配料正確。有沒有類似的問題與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' 應該是一個純文本文件。如果你看到任何SQ_PUT消息像一個下方基本上意味着你正在做批量更新:

----- 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 

而不是個人的插入。 任何最近的informix驅動程序都應該使用批處理操作。但我建議堅持最新版本(4.10.9)

可以通過Maven或通過IBM下載站點找到它們。

搖籃

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

Maven的

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

我使用JDBC Informix驅動程序 我應該使用什麼版本? \t JDBC \t ifxjdbc ANKIT

+0

這是4.10.9最新的,去那一個。 –