3
自联接主键
考虑以下由N自我联接组成的查询: select t1.* from [Table] as t1 join [Table] as t2 on t1.Id = t2.Id -- ... join [Table] as tN on t1.Id = tN.Id 它生成具有N个聚集索引扫描和N-1个合并联接的执行计划。 老实说,我看不出没有理由不优化所有联接而仅执行一个聚集索引扫描,即为此优化原始查询: select t1.* from [Table] as t1 问题 为什么没有优化联接? 说每个联接都不会改变结果集在数学上是不正确的吗? 经过测试: 源服务器版本:SQL Server 2014(12.0.4213) 源数据库引擎版本:Microsoft SQL Server标准版 源数据库引擎类型:独立SQL Server 兼容性级别:SQL Server 2008(100) 查询没有意义;它只是浮现在我的脑海,我对此感到很好奇。 这是创建表和3个查询的小提琴:带有inner …