【问题标题】:What is the performance of "Merge" clause in sql server 2008?sql server 2008中“Merge”子句的性能如何?
【发布时间】:2010-03-30 20:03:51
【问题描述】:

Merge 可以根据与源表连接的结果对目标表执行插入、更新或删除操作。例如,您可以通过根据在另一个表中发现的差异在一个表中插入、更新或删除行来同步两个表。

是否有人熟悉使用“合并”与传统逻辑来检查存在并决定更新或插入的性能?

谢谢!

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    MERGE 通常更快,因为 DML 操作较少,这也是文档中推荐的方法。使用“传统”方式,您将处理表两次 - 一次检查是否存在,一次执行 DML。使用 MERGE,一切都封装在一个操作中 - 因此发出一组锁、一组日志记录等。

    但是,您的查询实际上在做什么是非常主观的。你应该看看 MSDN 上的Optimizing MERGE Statement Performance

    【讨论】:

      【解决方案2】:

      Technet 在Optimizing MERGE Statement Performance 中有一些信息。它基本上说性能比单独检查要好,因为只需要一次通过数据。但是,索引等当然仍然很重要。

      【讨论】:

        【解决方案3】:

        我们最近在一个大型数据仓库项目中使用了这个 Merge 语句,我们发现它具有良好的性能并且易于实施。我们觉得 Merge 语句对于开发来说非常方便。

        期待讨论

        谢谢 说实话

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多