【发布时间】:2011-04-30 19:12:15
【问题描述】:
首先让我说我在 SQL Server 2005 上运行,所以我无权访问 MERGE。
我有一个大约 150k 行的表,我每天都会从文本文件中更新它。当行从文本文件中删除时,我需要将它们从数据库中删除,如果它们发生变化或者是新的,我需要相应地更新/插入。
经过一些测试,我发现在性能方面,执行完全删除然后从文本文件批量插入比逐行读取文件执行更新/插入要快得多。然而,我最近看到一些帖子讨论使用临时表和 UPDATE 语句的输出来模仿 SQL Server 2008 的 MERGE 功能。
我对此很感兴趣,因为我正在研究如何在表没有行时消除删除/批量插入方法中的时间。我仍然认为这种方法会最快,所以我正在寻找解决空表问题的最佳方法。
谢谢
【问题讨论】:
标签: sql sql-server sql-server-2005 performance bulkinsert