【发布时间】:2011-04-16 16:26:38
【问题描述】:
我已经在附近闲逛了几天,发现社区很棒!我确信有人可以就我的问题给我意见:
我们在 Oracle 服务器中有原始数据,我们的查询获取大约 312 MB 的数据(只是我们需要跨几个表连接的列)。这是使用Oracle.DataAccess.Client、FetchSize = RowSize * 512 完成的,大小约为 3.9 MB。我目前正在使用OracleDataReader 并在他的while() 循环中进行处理。
然后使用准备好的参数化IF EXISTS() UPDATE ELSE INSERT 写入处理结果。加入维度表后,我们可以从这个数据库中直接在 Excel 中返回我们需要的数据。
我正在寻找提高性能的方法。是否可以多线程 BULK INSERTs 和 UPDATEs 以及多线程处理行(比如启动 4 个线程并在它们之间平均划分 incomming 行)并执行类似 BULK UPDATE 的操作在 SQL Server 2005 中存在?
我不是在寻找复制粘贴代码,我对已经存在的最佳实践或模式更感兴趣。
最好的问候,
【问题讨论】:
标签: c# oracle sql-server-2005 parallel-processing etl