我正在学习如何阅读SQL Server中的实际执行计划。我注意到SQL Server倾向于将物理查询计划中使用的中间值表示为expr1006
,expr1007
等(即expr
后跟数字)。
这是屏幕截图。注意底部附近的expr1006, expr1008, expr1009
部分中列出的表达式output list
。
有可能找出它们真正代表什么?
最佳答案
右键单击计算标量,然后选择“属性”。
查看“定义的值”部分。
如果在此处计算expr1006 = SomeExpression()
,您将看到类似expr1006
的内容。可能定义了多个表达式。
否则,沿着树向叶下移动,找到expr1006
出现的第一个位置,并查看该运算符的属性。
对于大型计划,以XML格式查看并搜索expr1006
是查看表达式定义位置的最快方法。
以上通常就足够了。 SQL Server的最新版本允许您通过使用query_trace_column_values
扩展事件来实际查看这些表达式的值。 More information about that here。