公司每天都会将包含潜在许多记录(350,000)的文本文件放到我们的安全FTP上。我们已经创建了一个在早期运行的Windows服务,以便将文本文件读入我们的SQL Server 2005数据库表中。我们不做BULK插入,因为数据是关系数据,我们需要根据数据库中已有的数据进行检查,以确保数据保持正常和一致。大数据服务体系结构
问题在于服务可能需要很长时间(小时)。这是有问题的,因为它插入和更新到表中,这些表经常需要由我们的应用程序查询和扫描,这可能会影响数据库和应用程序的性能。
我们想到的一个解决方案是使用与我们的实时数据库相同的表在单独的数据库上运行服务。服务完成后,我们可以在活动数据库中执行BCP,以反映由服务创建的所有新记录。
我从来没有在数据库中处理过数百万条记录,我不确定这样的标准方法是什么。这是做这种事情的适当方式吗?有什么建议么?
+1 350.000行的批量插入应该在不到一分钟内完成。 'merge'在2005年不可用,但是从这个问题来看,插入RealTable(col1,col2)从TempTable中选择col1,col2在这里可以工作 – Andomar 2010-07-22 15:12:21
啊我没有注意到标签 - 我会修改我的答案。不幸的是,OP还表示他不能批量插入。 – 2010-07-22 15:13:14