Sql 如何在执行计划中找到Expr

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>

在SQLServerManagementStudio(SSMS)中查看查询的实际执行计划时,如何确定Expr1052之类的表达式表示什么


当我确定查询中代价高昂的部分并查看该操作的属性时,通常只引用这些表达式或标量运算符。我希望能够找出它所指的查询的哪一部分。

SSMS
执行计划
窗口中,右键单击首先计算表达式的操作并选择
属性

您将在右侧窗格中看到表达式定义

或者,您可以浏览
XML
计划并搜索如下条目:

  <DefinedValues>
    <DefinedValue>
      <ColumnReference Column="Expr1018" />
      <ScalarOperator ScalarString="col1 + col2">
      </ScalarOperator>
    </DefinedValue>
    …
  </DefinedValues>

我发现这是一个更详细的答案:该值位于属性表上的“定义值”下

哦,我明白了,但在我的情况下,它不在计算标量中。我必须在树中向后走,查看先前操作的输出列表。类似于有一个引用Expr1052的索引假脱机,以及流聚合在其输出列表中列出Expr1052之前的两个节点,定义的值显示了它是如何计算/导出的。类似于最近的问题: