【发布时间】:2012-08-07 18:22:41
【问题描述】:
我对此感到非常困惑。我无法提供示例,因为最终的 SQL 语句是动态构建的,并且很多函数和过程都在其中发挥作用......
一般来说,我有五个联接。我注意到当我删除其中一个时,语句执行 0 秒,否则超过 4 分钟。然后,我查看了实际的执行计划,并注意到“合并连接”需要很多成本。在 Google 中搜索时,我会使用“INNER MERGE JOIN”或“OPTION (MERGE JOIN)”以及语句的结尾。
这非常好,因为查询现在执行了 0 秒。但我的问题是为什么?
我做了一些研究,发现要使用 MERGE 连接,必须对两个语句进行排序 - 这不是我的情况,它们不是,我仍然在 0 秒内得到正确的结果。
有没有人在 T-SQL 想法方面取得进展,为什么会导致这种情况?
我知道我已经有了解决方案,但我想知道为什么它会起作用以及发生了什么。
【问题讨论】:
标签: tsql merge inner-join join-hints