我尝试了很多解决方案,但我仍然不明白:我有一个简单的插入(有 40 个不同类型的列(包括 blob),我尝试插入这种数据传递(我使用来自 c# 的 Odac)值数组对于每个参数。
结果是一次或多或少地调用 ExecuteNonQuery 4000 行,问题是这个插入没有那么多元素持续 3 小时。
有什么建议吗?数据源来自软件,因此无法在 db 上链接,它的内存数据和我所做的只是将它们放入数组中并将它们作为我的 oraclecommand 的输入参数传递,然后我运行。
在这种情况下,使用存储过程会有什么不同吗?为什么?
插入实际上是在一个事务中,但我尝试插入的表中根本没有索引,数据库它是一个带有 100 个表的 Oracle XE 的常规安装,事务只包括这个插入和其他一些不太大的操作。我尝试插入的总数据最大为 100 Mb...我不知道我应该再次检查什么:(
再说一遍:事务似乎不会影响性能并且速度不是线性的,即 1000 个元素 = 10 分钟,4000 个元素 = 3 小时 .. 全部使用 100% 的 cpu 和大量的内存使用