Sql 如何在执行计划中找到Expr
在SQLServerManagementStudio(SSMS)中查看查询的实际执行计划时,如何确定Expr1052之类的表达式表示什么Sql 如何在执行计划中找到Expr,sql,sql-server,sql-server-2005,performance,tsql,Sql,Sql Server,Sql Server 2005,Performance,Tsql,在SQLServerManagementStudio(SSMS)中查看查询的实际执行计划时,如何确定Expr1052之类的表达式表示什么 当我确定查询中代价高昂的部分并查看该操作的属性时,通常只引用这些表达式或标量运算符。我希望能够找出它所指的查询的哪一部分。在SSMS的执行计划窗口中,右键单击首先计算表达式的操作并选择属性 您将在右侧窗格中看到表达式定义 或者,您可以浏览XML计划并搜索如下条目: <DefinedValues> <DefinedValue>
当我确定查询中代价高昂的部分并查看该操作的属性时,通常只引用这些表达式或标量运算符。我希望能够找出它所指的查询的哪一部分。在
SSMS
的执行计划
窗口中,右键单击首先计算表达式的操作并选择属性
您将在右侧窗格中看到表达式定义
或者,您可以浏览XML
计划并搜索如下条目:
<DefinedValues>
<DefinedValue>
<ColumnReference Column="Expr1018" />
<ScalarOperator ScalarString="col1 + col2">
</ScalarOperator>
</DefinedValue>
…
</DefinedValues>
…
我发现这是一个更详细的答案:该值位于属性表上的“定义值”下哦,我明白了,但在我的情况下,它不在计算标量中。我必须在树中向后走,查看先前操作的输出列表。类似于有一个引用Expr1052的索引假脱机,以及流聚合在其输出列表中列出Expr1052之前的两个节点,定义的值显示了它是如何计算/导出的。类似于最近的问题: