我目前正在使用 OCI 从 C++ 代码将记录逐一插入到表中。数据位于结构的哈希图中,我迭代映射的元素,将结构的属性绑定到表中记录的列(例如
定义插入查询
对记录的所有列使用 OCIBindByname( )
迭代地图
将绑定变量分配为结构体的属性
OCIStmt执行
结尾
这非常慢,所以我想通过批量插入来加快速度。有什么好的方法可以做到这一点?我应该使用结构体数组将所有记录插入一个 OCIStmtExecute 中吗?您有任何示例代码可以说明如何执行此操作吗?
Here https://github.com/gaiustech/ociml/blob/master/oci_bulkdml.c是一些示例代码,展示了我如何实现它OCI*ML http://gaiustech.github.com/ociml/。总之,执行此操作的方法是(例如对于具有一列整数的表):
-
malloc()
的一块内存sizeof(int)
× 行数并填充它。这可能是一个数组。
- Call
OCIBindByPos()
与该指针*valuep
和尺寸value_sz
.
- Call
OCIStmtExecute()
with iters
设置为步骤 1 中的行数
In my 经验 http://gaiustech.wordpress.com/2011/06/08/ociml-bulk-operations/,100 倍的加速当然是可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)