哪种批量插入Oracle数据库的最有效方法是什么?

时间:2013-04-04 06:01:48

标签: c# performance oracle bulkinsert odp.net

作为我办公室要求的一部分,我需要编写一个C#控制台应用程序,该应用程序从Oracle CRM ON Demand服务器提取批量数据并将其推送到本地Oracle数据库。

现在,经过大量研究后,我决定使用ODP.NET的数组绑定功能,据我所知,它具有最佳性能。

但是问题在于,我需要提取的数据每个记录/行总共有超过50个字段/列。所以我需要创建那么多的字符串数组?

我可以使用50+列的数据表而不是字符串数组来实现相同的(数组绑定)吗?如果是这样,怎么样? (我已经对此做了足够的研究,但找不到解决方案)我知道我可以使用OracleBulkCopy类,但是从我在这里读到的它不那么有效,与Array Binding相比性能很差。

另外,如果我使用这么多数组,我的应用程序是否仍然有效?因为当我与同事讨论这个选项时,他们声称在你的应用程序中有这么多数组并不是一个好的设计。

上述问题让我在过去几天陷入困境,有谁能帮助我解决我的问题的最佳解决方案?我需要尽快解决这个问题。

1 个答案:

答案 0 :(得分:1)

  

但是问题在于,我需要提取的数据每个记录/行总共有超过50个字段/列。所以我需要创建那么多的字符串数组?

不幸的是,是的。我有完全相同的问题,我找不到比你建议的更好的解决方案。只有在您想使用经典的ADO.NET时,DataTable才是一个选项。

不要担心性能:我的应用程序在数组绑定中插入了数百万行的标准日,而且我没有性能或内存问题。但我同意你的同事,代码并不漂亮。