Oracle中的大容量插入性能

本文关键字:插入 性能 大容量 Oracle | 更新日期: 2023-09-27 18:28:13

我尝试了很多解决方案,但我仍然不明白:我得到了一个简单的插入(有40列不同类型的列(包括blob)),我试图为每个参数插入这种数据传递(我使用c#中的Odac)值数组。

结果是对4000行执行了一次ExecuteNonQuery,问题是这个没有那么多元素的插入持续了3个小时。

有什么建议吗?数据源来自软件,因此无法链接到数据库、数据库的内存数据,我所做的只是将它们放在数组中,并将它们作为我运行的oraclecommand的输入参数传递。

在这种情况下,使用存储过程会有什么不同吗?为什么?

插入实际上在一个事务中,但在我试图插入的表中根本没有索引,数据库是Oracle XE的常规安装,有100个表,事务只包括这个插入和其他一些不那么大的操作。我尝试插入的总数据最大为100Mb…我不知道我应该再次检查什么:(

同样:交易似乎不会影响性能,速度也不是线性的,即1000个元素=10分钟,4000个元素=3小时。。所有的cpu 100%和大量使用内存

Oracle中的大容量插入性能

插入4000行需要3个小时?这就是问题所在吗?除非每一行都有几GB长,否则没有真正的理由获得这样的性能——您需要查看数据库(或者让您的DBA查看),而不是C#代码。