SQL执行计划Join操作符显示 [无联结述词]。 Sql Server No Join Predicate Warning

今天无意间发现一句简单Query的执行计划有一个我没见过的图示


下图是一个巢状循环的操作符

而我今天看见一个巢状循环的操作符,但上面多了一个叉叉,如下图

产生这一个图示的Query是很单纯的两张表Join,并Where一个ID如此而已。

整个Query的执行计划如下图。

该操作符的内容如下图,其中红色圈选处的警告说明显示是 [ 无联结述词 ]

我测试一下发现这两张表只要Join(Left Join也是)其执行计划就会显示叉叉

,可是其Query出来的数据又没问题。此时我将状况跟百敬老师说,本想问

一下有叉叉代表什么意思。

结果百敬老师还帮我爬文找数据(真的感谢老师Orz)。后来老师找到一篇文,

状况跟我类似,连结如下

Transact SQL – Missing Join Predicate Event – No Join Predicate​

该文章作者也表示爬了很多文,大多建议的解法有重建索引或更新统计数据。

因此我姑且一试,将两张数据表的Index给重新建立了。然后我们再执行

一次Query看看。

如下图所示,该警告的叉叉消失了。

 虽然不晓得是什么原因会产生该问题,也不晓得什么原因解了这一个问题

百敬老师觉得,跟形成执行计划的任何一环有关,都可能可以改变这个警告或错误 

再次感谢老师,自己笔记一下,免得将来又忘了呀。

我是ROCK

[email protected]