一言一通

已加入
2016年10月13日
留言内容
1
编程经验
10+
我正在尝试使用ODP.NET或DevArt从Oracle 11G删除数百万条记录。如果我发送100条delete语句,则希望它们全部同时执行。但相反,它们以1乘1的顺序运行。

我尝试使用常规方式打开连接,执行语句,关闭连接,每个连接都有自己的线程。从理论上讲,我发送了200条语句,应该杀死服务器100%以上的CPU使用率。但是相反,我只看到8%的使用率,并且要花费数小时才能删除100万条记录。

因此,我以考虑让Oracle决定何时重用连接的问题为由禁用了缓冲池。相同的代码打开运行关闭。结果相同。我尝试了ODP和DevArt相同的结果。如果我打开多个SQLPlus窗口并运行多个语句,则可以按预期推送CPU。

我们直接在批量运行多个语句的服务器上进行了测试,并且能够推送CPU。因此服务器设置正确。回收站已禁用,无日志记录,无任何问题导致速度降低。所以问题是使用.NET连接时。

如果有帮助,我可以提交一些示例代码。
 
最佳 底部