全部删除/批量插入

rpf*_*pf3 6 sql sql-server performance bulkinsert sql-server-2005

首先让我说我在SQL Server 2005上运行,所以我没有访问权限MERGE.

我有一个约150k行的表,我每天从文本文件更新.当行从文本文件中删除时,我需要从数据库中删除它们,如果它们发生变化或者是新的,我需要相应地更新/插入.

经过一些测试后,我发现性能方面明智的是,执行完全删除然后从文本文件批量插入而不是通过执行更新/插入的行逐行读取是指数级更快.但是我最近遇到了一些讨论MERGE使用临时表和UPDATE语句输出来模仿SQL Server 2008功能的帖子.

我对此感兴趣,因为我正在调查当表没有行时如何消除删除/批量插入方法中的时间.我仍然认为这种方法将是最快的,所以我正在寻找解决空表问题的最佳方法.

谢谢

Joe*_*lli 5

我认为你最快的方法是:

  1. 删除表中的所有外键和索引.
  2. 截断你的表.
  3. 批量插入您的数据.
  4. 重新创建外键和索引.