什么是伪合并连接?

时间:2016-07-21 15:40:48

标签: sql-server tsql sql-execution-plan

这是Microsoft TechNet解释跟踪标志342(强调添加)的描述:

  

显着禁用伪合并连接的成本核算   减少某些类型的大型解析所花费的时间,   多表连接。也可以使用SET FORCEPLAN ON来禁用   伪合并连接的成本因为查询被强制使用   在FROM子句中指定的顺序。

你们有谁知道什么是伪合并连接?据我所知,SQL Server有3个连接算法(嵌套循环连接,合并连接和散列连接 - 包含位图连接)。那么什么是伪合并连接,它与常规合并连接或任何其他连接之间的区别是什么?

1 个答案:

答案 0 :(得分:1)

我知道这是一个古老的问题,但我会尽力回答它。

伪合并不是一种用作T-SQL语言运算符的Join,我使用跟踪标志342 对Microsoft explanation的解释如下: :

  

显着禁用伪合并连接的成本计算   减少某些类型的大型解析所花费的时间,   多表连接。

伪合并是表示查询优化器正在尝试计算更好的查询执行计划的概念,试图获得加入多个表的最佳方法。

  

也可以使用SET FORCEPLAN ON来禁用成本核算   伪合并连接,因为查询被强制使用该命令   在FROM子句中指定。

此选项prevents the optimizer from trying to calculate,只需执行查询中列出的联接。

有关SET FORCEPLAN ON的文章供参考。