2010-04-27 10 views
9

Al observar el plan de ejecución real de una consulta en SQL Server Management Studio (SSMS), ¿cómo puedo determinar qué representa una expresión como Expr1052?Cómo encontrar Expr #### en el plan de ejecución

Cuando identifico las partes costosas de la consulta y miro las propiedades de esa operación, a menudo hay referencias solo a estas expresiones, o operadores escalares. Quiero ser capaz de averiguar a qué parte de mi consulta se refiere.

Respuesta

12

En la ventana Execution Plan de SSMS, haga clic con el botón derecho en la operación que primero calcula la expresión y seleccione Properties.

Verá la definición de expresión en el panel a la derecha.

Alternativamente, puede navegar por el plan XML y la búsqueda de las entradas como que:

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

Oh, ya veo, excepto en mi caso no fue en un Compute Scalar. Tengo que caminar hacia atrás a través del árbol y mirar la lista de salida para las operaciones anteriores. Al igual que hay un Spool de índice que hace referencia a Expr1052, y dos nodos antes de que Stream Aggregate haya enumerado en su lista de salida, Expr1052 y los valores definidos muestran cómo se calcula/deriva. – AaronLS

Cuestiones relacionadas