【发布时间】:2010-07-23 05:13:29
【问题描述】:
每天,一家公司都会将一个包含许多记录 (350,000) 的文本文件放到我们的安全 FTP 上。我们创建了一个在上午早些时候运行的 Windows 服务,用于将文本文件读入我们的 SQL Server 2005 DB 表。我们不执行 BULK Insert,因为数据是相关的,我们需要将其与数据库中已有的内容进行检查,以确保数据保持规范化和一致。
这样做的问题是服务可能需要很长时间(几小时)。这是有问题的,因为它正在向我们的应用程序需要不断查询和扫描的表中插入和更新,这可能会影响数据库和应用程序的性能。
我们想到的一个解决方案是在一个单独的数据库上运行该服务,该数据库与我们的实时数据库具有相同的表。服务完成后,我们可以在实时数据库中执行 BCP,以便它反映服务创建的所有新记录。
我以前从未在数据库中处理过数百万条记录,我不确定这样的标准方法是什么。这是做这种事情的合适方式吗?有什么建议吗?
【问题讨论】:
标签: sql-server sql-server-2005 architecture service