我有一个表中有大约一百万条记录。使用C#优化向SQL Server 2005的数据导入
每个月我们都会获得大约1/2万个要导入的记录。这些目前被推入到数据库中的另一个表中,但最终将直接从txt文件中加载。对于这些新记录中的每一个,我必须确定是否已经有该记录,如果我们不记录,则需要插入它。但是,如果我们确实有记录需要更新。这些更新包含C#代码的逻辑。
A C#命令行程序正在处理这个新数据的导入,所以现在有1/2的百万select语句 - 每个记录。然后,生成一堆(大约一千万)插入和更新语句,并针对数据库运行。
这对本约6小时到我的工作站上运行。你对如何加速它有什么想法吗?我需要运行这些大型进口中的大约60个,以使数据库达到当前月份,然后每月加载一次新数据。
我觉得可以改进的一个领域是1/2百万select语句。也许我可以发出一个select语句来获取所有行,并将它们存储在内存中,然后对其进行搜索。我可以为此使用一个List,还是有更好的课程?我将不得不基于两个属性(或数据库字段)进行搜索。
谢谢,我会仔细研究一下,我总是在BCL中找到新的东西,不知道重新编写所有的LINQ到SQL来查询和插入是值得的,但是如果我想要更好的表现。 – 2009-01-01 00:31:32