2017-10-05 242 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最新的,去那一个。 –