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