Informix数据库中的Hibernate批插入(获取sql日志跟踪)
我正在尝试在informix数据库中使用hibernate进行批插入和更新。 但我无法确定插入是否实际是批处理的。我们是否需要设置任何属性来获取sql语句的日志。 例如:在mysql中,我们使用profileSQL=true 我尝试在连接URL中设置SQLIDEBUG=filePath,但该文件不可读。是否有其他方法获取sql日志,以便验证插入和更新是否是批处理的 此外,什么样的informix驱动程序版本可以正确地批量插入和更新。在MySql中,我观察到MySql连接器5.1.28不能正确批处理,而5.1.18可以正确批处理。informix是否存在类似问题?要读取(解码)SQLIDEBUG文件,您需要informix CSDK包中包含的工具。 在Windows上命名为“sqliprt.exe”,在Linux/Unix/Everything上命名为“sqliprint” 您可能已经在IDS server bin目录中有了它,因为CSDK通常与引擎一起安装 一个简单的例子:Informix数据库中的Hibernate批插入(获取sql日志跟踪),hibernate,informix,Hibernate,Informix,我正在尝试在informix数据库中使用hibernate进行批插入和更新。 但我无法确定插入是否实际是批处理的。我们是否需要设置任何属性来获取sql语句的日志。 例如:在mysql中,我们使用profileSQL=true 我尝试在连接URL中设置SQLIDEBUG=filePath,但该文件不可读。是否有其他方法获取sql日志,以便验证插入和更新是否是批处理的 此外,什么样的informix驱动程序版本可以正确地批量插入和更新。在MySql中,我观察到MySql连接器5.1.28不能正确批处
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'
马文
com.ibm.informix
jdbc
4.10.9
要读取(解码)SQLIDEBUG文件,需要Informix CSDK包中包含的工具。
在Windows上命名为“sqliprt.exe”,在Linux/Unix/Everything上命名为“sqliprint”
您可能已经在IDS server bin目录中有了它,因为CSDK通常与引擎一起安装
一个简单的例子:
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'
马文
com.ibm.informix
jdbc
4.10.9
我正在使用jdbc informix驱动程序我应该使用什么版本?jdbc ifxjdbc最新版本是4.10.9,我使用的是jdbc informix驱动程序,我应该使用什么版本?jdbc ifxjdbc最新版本是4.10.9,请选择该版本。