Referencia de operadores lógicos y físicos del plan de presentaciónShowplan Logical and Physical Operators Reference

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Los operadores describen cómo SQL ServerSQL Server ejecuta una consulta o una instrucción DML (Lenguaje de manipulación de datos).Operators describe how SQL ServerSQL Server executes a query or a Data Manipulation Language (DML) statement. El optimizador de consultas usa operadores para generar un plan de consulta con el fin de crear el resultado especificado en la consulta o para realizar la operación especificada en la instrucción DML.The query optimizer uses operators to build a query plan to create the result specified in the query, or to perform the operation specified in the DML statement. El plan de consulta es un árbol que consta de operadores físicos.The query plan is a tree consisting of physical operators. Puede ver el plan de consulta mediante las instrucciones SET SHOWPLAN, las opciones gráficas del plan de ejecución de SQL Server Management StudioSQL Server Management Studioo las clases de eventos Showplan de SQL Server Profiler.You can view the query plan by using the SET SHOWPLAN statements, the graphical execution plan options in SQL Server Management StudioSQL Server Management Studio, or the SQL Server Profiler Showplan event classes.

Los operadores se clasifican como lógicos y físicos.Operators are classified as logical and physical operators.

Operadores lógicosLogical Operators
Los operadores lógicos describen la operación algebraica relacional usada para procesar una instrucción.Logical operators describe the relational algebraic operation used to process a statement. En otras palabras, los operadores lógicos describen conceptualmente la operación que se debe realizar.In other words, logical operators describe conceptually what operation needs to be performed.

Operadores físicosPhysical Operators
Los operadores físicos implementan la operación descrita por los operadores lógicos.Physical operators implement the operation described by logical operators. Cada operador físico es un objeto o rutina que realiza una operación.Each physical operator is an object or routine that performs an operation. Por ejemplo, algunos operadores físicos obtienen acceso a columnas o filas desde una tabla, índice o vista.For example, some physical operators access columns or rows from a table, index or view. Otros operadores físicos realizan otras operaciones como cálculos, agregaciones, comprobaciones de integridad de datos o combinaciones.Other physical operators perform other operations such as calculations, aggregations, data integrity checks or joins. Los operadores físicos tienen costos asociados.Physical operators have costs associated with them.

Los operadores físicos se inicializan, recopilan datos y se cierran.The physical operators initialize, collect data, and close. Específicamente, el operador físico puede responder a las llamadas de los tres métodos siguientes:Specifically, the physical operator can answer the following three method calls:

  • Init() : el método Init() hace que un operador físico se inicialice y configure las estructuras de datos necesarias.Init(): The Init() method causes a physical operator to initialize itself and set up any required data structures. El operador físico puede recibir numerosas llamadas Init() , aunque suele recibir solo una.The physical operator may receive many Init() calls, though typically a physical operator receives only one.

  • GetNext() : el método GetNext() hace que un operador físico obtenga la primera fila de datos o la siguiente.GetNext(): The GetNext() method causes a physical operator to get the first, or subsequent row of data. El operador físico puede recibir ninguna o numerosas llamadas GetNext() .The physical operator may receive zero or many GetNext() calls.

  • Close() : el método Close() hace que un operador físico realice algunas operaciones de limpieza y se cierre.Close(): The Close() method causes a physical operator to perform some clean-up operations and shut itself down. Un operador físico recibe únicamente una llamada de Close() .A physical operator only receives one Close() call.

El método GetNext() devuelve una fila de datos, mientras que el número de veces que se llama aparece como ActualRows en los resultados del plan de presentación generado mediante SET STATISTICS PROFILE ON o SET STATISTICS XML ON.The GetNext() method returns one row of data, and the number of times it is called appears as ActualRows in the Showplan output that is produced by using SET STATISTICS PROFILE ON or SET STATISTICS XML ON. Para obtener más información sobre estas opciones de SET, vea SET STATISTICS PROFILE (Transact-SQL) y SET STATISTICS XML (Transact-SQL).For more information about these SET options, see SET STATISTICS PROFILE (Transact-SQL) and SET STATISTICS XML (Transact-SQL).

Los recuentos ActualRebinds y ActualRewinds que aparecen en los resultados del plan de presentación hacen referencia al número de veces que se llama al método Init() .The ActualRebinds and ActualRewinds counts that appear in Showplan output refer to the number of times that the Init() method is called. A menos que haya un operador en la parte interna de una combinación de bucles, ActualRebinds es igual a uno y ActualRewinds es igual a cero.Unless an operator is on the inner side of a loop join, ActualRebinds equals one and ActualRewinds equals zero. Si hay un operador en la parte interna de una combinación de bucles, la suma del número de reenlaces y rebobinados es igual al número de filas procesadas en la parte externa de la combinación.If an operator is on the inner side of a loop join, the sum of the number of rebinds and rewinds should equal the number of rows processed on the outer side of the join. Un reenlace significa que uno o más de los parámetros correlativos de la combinación han cambiado y es necesario volver a evaluar la parte interna.A rebind means that one or more of the correlated parameters of the join changed and the inner side must be reevaluated. Un rebobinado significa que ninguno de los parámetros correlativos ha cambiado y aún se puede volver a utilizar el conjunto de resultados interno anterior.A rewind means that none of the correlated parameters changed and the prior inner result set may be reused.

ActualRebinds y ActualRewinds aparecen en los resultados del plan de presentación XML generado mediante SET STATISTICS XML ON.ActualRebinds and ActualRewinds are present in XML Showplan output produced by using SET STATISTICS XML ON. Solo se rellenan para los operadores Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spooly Table-valued Function .They are only populated for the Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spool, and Table-valued Function operators. ActualRebinds y ActualRewinds también se pueden rellenar para los operadores Assert y Filter cuando el atributo StartupExpression está establecido en TRUE.ActualRebinds and ActualRewinds may also be populated for the Assert and Filter operators when the StartupExpression attribute is set to TRUE.

Cuando ActualRebinds y ActualRewinds aparecen en un plan de presentación XML, son comparables a EstimateRebinds y EstimateRewinds.When ActualRebinds and ActualRewinds are present in an XML Showplan, they are comparable to EstimateRebinds and EstimateRewinds. Si no aparecen, el número estimado de filas (EstimateRows) es comparable al número real de filas (ActualRows).When they are absent, the estimated number of rows (EstimateRows) is comparable to the actual number of rows (ActualRows). Tenga en cuenta que si no aparecen, los resultados reales del plan de presentación gráfico muestran ceros para los reenlaces y rebobinados reales.Note that actual graphical Showplan output displays zeros for the actual rebinds and actual rewinds when they are absent.

Hay un contador relacionado disponible, ActualEndOfScans, únicamente cuando se generan los resultados del plan de presentación mediante SET STATISTICS XML ON.A related counter, ActualEndOfScans, is available only when Showplan output is produced by using SET STATISTICS XML ON. Siempre que un operador físico alcanza el final de su flujo de datos, este contador se incrementa en uno.Whenever a physical operator reaches the end of its data stream, this counter is incremented by one. Un operador físico puede alcanzar el final de su flujo de datos cero, una o varias veces.A physical operator can reach the end of its data stream zero, one, or multiple times. Al igual que los reenlaces y rebobinados, el número de finales de recorrido puede ser superior a uno únicamente si el operador se encuentra en la parte interna de una combinación de bucles.As with rebinds and rewinds, the number of end of scans can be more than one only if the operator is on the inner side of a loop join. El número de finales de recorrido debería ser inferior o igual a la suma del número de reenlaces y rebobinados.The number of end of scans should be less than or equal to the sum of the number of rebinds and rewinds.

Asignar operadores físicos y lógicosMapping Physical and Logical Operators

El optimizador de consultas crea un plan de consulta con forma de árbol que consta de operadores lógicos.The query optimizer creates a query plan as a tree consisting of logical operators. Una vez que el optimizador de consultas ha creado el plan, elige el operador físico más eficaz para cada operador lógico.After the query optimizer creates the plan, the query optimizer chooses the most efficient physical operator for each logical operator. El optimizador de consultas utiliza un método basado en el costo para determinar el operador físico que implementará un operador lógico.The query optimizer uses a cost-based approach to determine which physical operator will implement a logical operator.

Normalmente, varios operadores físicos pueden implementar una operación lógica.Usually, a logical operation can be implemented by multiple physical operators. Sin embargo, en pocas ocasiones un operador físico puede implementar varias operaciones lógicas también.However, in rare cases, a physical operator can implement multiple logical operations as well.

Descripción del operadorOperator Descriptions

Esta sección contiene las descripciones de los operadores lógicos y físicos.This section contains descriptions of the logical and physical operators.

Icono del plan de ejecución gráficoGraphical Execution Plan Icon Operador de plan de presentaciónShowplan Operator DescripciónDescription
Icono del operador Combinación adaptableAdaptive Join operator icon Combinación adaptableAdaptive Join El operador Combinación adaptable permite retrasar un método de combinación hash o de combinación de bucles anidados hasta después de que se haya examinado la primera entrada.The Adaptive Join operator enables the choice of a hash join or nested loops join method to be deferred until the after the first input has been scanned. El operador Combinación adaptable es un operador físico.The Adaptive Join operator is a physical operator. Para obtener más información, vea Descripción de las combinaciones adaptables.For more information, see Understanding Adaptive joins.
NoneNone AgregadoAggregate El operador Aggregate calcula una expresión que contiene MIN, MAX, SUM, COUNT o AVG.The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG. El operador Aggregate puede ser un operador lógico o físico.The Aggregate operator can be a logical operator or a physical operator.
Icono del operador Arithmetic ExpressionArithmetic expression operator icon Arithmetic ExpressionArithmetic Expression El operador Arithmetic Expression calcula un nuevo valor a partir de los valores de una fila.The Arithmetic Expression operator computes a new value from existing values in a row. Arithmetic Expression no se usa en SQL Server 2017SQL Server 2017.Arithmetic Expression is not used in SQL Server 2017SQL Server 2017.
NoneNone Async ConcatAsync Concat El operador Async Concat solo se usa en consultas remotas (consultas distribuidas).The Async Concat operator is used only in remote queries (distributed queries). Tiene n nodos secundarios y un nodo primario.It has n children and one parent node. Algunos de los nodos secundarios suelen ser equipos remotos que participan en una consulta distribuida.Usually, some of the children are remote computers that participate in a distributed query. Async Concat emite llamadas open() a todos los nodos secundarios a la vez y, después, asigna un mapa de bits a cada uno de estos nodos.Async Concat issues open() calls to all of the children simultaneously and then applies a bitmap to each child. Por cada bit que sea un 1, Async Concat envía las filas de salida a petición al nodo primario.For each bit that is a 1, Async Concat sends the output rows to the parent node on demand.
Icono del operador AssertAssert operator icon AssertAssert El operador Assert comprueba una condición.The Assert operator verifies a condition. Por ejemplo, valida la integridad referencial o se asegura de que una subconsulta escalar devuelve una fila.For example, it validates referential integrity or ensures that a scalar subquery returns one row. Por cada fila de entrada, el operador Assert evalúa la expresión de la columna Argument del plan de ejecución.For each input row, the Assert operator evaluates the expression in the Argument column of the execution plan. Si la expresión da como resultado NULL, la fila se pasa a través del operador Assert y continúa la ejecución de la consulta.If this expression evaluates to NULL, the row is passed through the Assert operator and the query execution continues. Si la expresión da como resultado un valor distinto a NULL, se generará el error apropiado.If this expression evaluates to a nonnull value, the appropriate error will be raised. Assert es un operador físico.The Assert operator is a physical operator.
Icono del elemento del lenguaje AssignAssign language element icon AssignAssign El operador Assign asigna el valor de una expresión o una constante a una variable.The Assign operator assigns the value of an expression or a constant to a variable. Assign es un elemento del lenguaje.Assign is a language element.
Icono del operador BitmapBitmap operator icon Bitmap CreateBitmap Create El operador Bitmap Create aparece en el resultado del plan de presentación en la que se generan los mapas de bits.The Bitmap Create operator appears in the Showplan output where bitmaps are built. Bitmap Create es un operador lógico.Bitmap Create is a logical operator.
Icono del operador BitmapBitmap operator icon BitmapBitmap SQL ServerSQL Server usa el operador Bitmap para implementar filtros de mapas de bits en planes de consulta paralelos.uses the Bitmap operator to implement bitmap filtering in parallel query plans. Los filtros de mapas de bits agiliza la ejecución de la consulta al eliminar las filas con valores de clave que no pueden generar ningún registro de combinación antes de pasar las filas a través de otro operador, por ejemplo, el operador Parallelism .Bitmap filtering speeds up query execution by eliminating rows with key values that cannot produce any join records before passing rows through another operator such as the Parallelism operator. Un filtro de mapas de bits usa una representación compacta de un conjunto de valores de una tabla en una parte del árbol de operadores para filtrar filas de una segunda tabla en otra parte del árbol.A bitmap filter uses a compact representation of a set of values from a table in one part of the operator tree to filter rows from a second table in another part of the tree. Si se quitan las filas innecesarias de la consulta en una fase temprana, los operadores subsiguientes tienen menos filas con las que trabajar y el rendimiento global de la consulta mejora.By removing unnecessary rows early in the query, subsequent operators have fewer rows to work with, and the overall performance of the query improves. El optimizador determina cuando un mapa de bits es suficientemente selectivo para resultar útil y en qué operadores se aplica el filtro.The optimizer determines when a bitmap is selective enough to be useful and in which operators to apply the filter. Bitmap es un operador físico.Bitmap is a physical operator.
Icono del operador Bookmark LookupBookmark lookup operator icon Bookmark LookupBookmark Lookup El operador Bookmark Lookup usa un marcador (identificador de fila o clave de agrupación en clústeres) para buscar la fila correspondiente en la tabla o índice agrupado.The Bookmark Lookup operator uses a bookmark (row ID or clustering key) to look up the corresponding row in the table or clustered index. La columna Argument contiene la etiqueta del marcador utilizado para buscar la fila en la tabla o el índice clúster.The Argument column contains the bookmark label used to look up the row in the table or clustered index. La columna Argument también contiene el nombre de la tabla o el índice clúster donde se busca la fila.The Argument column also contains the name of the table or clustered index in which the row is looked up. Si la columna Argument refleja la cláusula WITH PREFETCH, el procesador de consultas habrá determinado que resulta óptimo usar una captura previa asincrónica (lectura anticipada) al buscar marcadores en la tabla o el índice agrupado.If the WITH PREFETCH clause appears in the Argument column, the query processor has determined that it is optimal to use asynchronous prefetching (read-ahead) when looking up bookmarks in the table or clustered index.

A partir de SQL Server 2005 (9.x)SQL Server 2005 (9.x), no se usa Bookmark Lookup.Starting with SQL Server 2005 (9.x)SQL Server 2005 (9.x), Bookmark Lookup is not used. En su lugar, Key Lookup y RID Lookup proporcionan la funcionalidad de búsqueda de marcadores.Instead, Key Lookup and RID Lookup provide bookmark lookup functionality.
NoneNone Branch RepartitionBranch Repartition En un plan de consulta paralelo, a veces hay regiones conceptuales de iteradores.In a parallel query plan, sometimes there are conceptual regions of iterators. Todos los iteradores de una región así se pueden ejecutar mediante subprocesos paralelos.All of the iterators within such a region can be executed by parallel threads. Las regiones en sí deben ejecutarse en serie.The regions themselves must be executed serially. Algunos de los iteradores Parallelism de una región individual se denominan Branch Repartition.Some of the Parallelism iterators within an individual region are called Branch Repartition. El iterador Parallelism situado en el límite de dos de estas regiones se denomina Segment Repartition.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch Repartition y Segment Repartition son operadores lógicos.Branch Repartition and Segment Repartition are logical operators.
NoneNone BroadcastBroadcast Broadcast tiene un nodo secundario y n nodos primarios.Broadcast has one child node and n parent nodes. Broadcast envía las filas de entrada a varios consumidores a petición.Broadcast sends its input rows to multiple consumers on demand. Cada consumidor recibe todas las filas.Each consumer gets all of the rows. Por ejemplo, si todos los consumidores son lados de creación de una combinación hash, se crearán n copias de las tablas hash.For example, if all of the consumers are build sides of a hash join, then n copies of the hash tables will be built.
Icono de operador de hash de compilaciónBuild hash operator icon Build HashBuild Hash Indica la compilación de una tabla hash del lote para un índice optimizado memoria de columnstore de xVelocity.Indicates the build of a batch hash table for an xVelocity memory optimized columnstore index.
NoneNone CacheCache Cache es una versión especializada del operador Spool .Cache is a specialized version of the Spool operator. Almacena solo una fila de datos.It stores only one row of data. Cache es un operador lógico.Cache is a logical operator. Cache no se usa en SQL Server 2017SQL Server 2017.Cache is not used in SQL Server 2017SQL Server 2017.
Icono del operador Eliminación en índice clústerClustered index delete operator icon Clustered Index DeleteClustered Index Delete El operador Clustered Index Delete elimina filas del índice agrupado especificado en la columna Argument del plan de ejecución de consulta.The Clustered Index Delete operator deletes rows from the clustered index specified in the Argument column of the query execution plan. Si hay un predicado WHERE:() en la columna Argument, solo se eliminan las filas que cumplen el predicado.Clustered Index Delete es un operador físico.If a WHERE:() predicate is present in the Argument column, then only those rows that satisfy the predicate are deleted.Clustered Index Delete is a physical operator.
Icono del operador Inserción en índice clústerClustered index insert operator icon Clustered Index InsertClustered Index Insert El operador del plan de presentación Clustered Index Insert inserta filas desde su entrada en el índice agrupado especificado en la columna Argument.The Clustered Index Insert Showplan operator inserts rows from its input into the clustered index specified in the Argument column. La columna Argument también contiene un predicado SET:(), que indica el valor en el que se establece cada columna.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Si Clustered Index Insert no tiene elementos secundarios para los valores de inserción, se obtendrá la fila insertada del operador Insert .Clustered Index Insert es un operador físico.If Clustered Index Insert has no children for insert values, the row inserted is taken from the Insert operator itself.Clustered Index Insert is a physical operator.
Operador Mezcla de índice clústerClustered index merge operator Clustered Index MergeClustered Index Merge El operador Clustered Index Merge aplica un flujo de datos de mezcla a un índice clúster.The Clustered Index Merge operator applies a merge data stream to a clustered index. El operador elimina, actualiza o inserta filas del índice clúster especificado en la columna Argumento del operador.The operator deletes, updates, or inserts rows from the clustered index specified in the Argument column of the operator. La operación real ejecutada depende del valor de tiempo de ejecución de la columna ACCIÓN especificada en la columna Argument del operador.The actual operation performed depends on the runtime value of the ACTION column specified in the Argument column of the operator. Clustered Index Merge es un operador físico.Clustered Index Merge is a physical operator.
Icono del operador Clustered Index ScanClustered index scan operator icon Clustered Index ScanClustered Index Scan El operador Clustered Index Scan examina el índice agrupado especificado en la columna Argument del plan de ejecución de consulta.The Clustered Index Scan operator scans the clustered index specified in the Argument column of the query execution plan. Si hay un predicado WHERE:() opcional, solo se devuelven las filas que lo cumplen.When an optional WHERE:() predicate is present, only those rows that satisfy the predicate are returned. Si la columna Argument contiene la cláusula ORDERED, el procesador de consultas ha solicitado que la salida de las filas se devuelva en el orden en que las haya ordenado el índice clúster.If the Argument column contains the ORDERED clause, the query processor has requested that the output of the rows be returned in the order in which the clustered index has sorted it. Si no hay una cláusula ORDERED, el motor de almacenamiento recorre el índice de la forma óptima (sin tener que ordenar el resultado).If the ORDERED clause is not present, the storage engine scans the index in the optimal way, without necessarily sorting the output. Clustered Index Scan es un operador lógico y físico.Clustered Index Scan is a logical and physical operator.
Icono del operador Clustered Index SeekClustered index seek operator icon Clustered Index SeekClustered Index Seek El operador Clustered Index Seek usa la capacidad de búsqueda de los índices para recuperar filas de un índice clúster.The Clustered Index Seek operator uses the seeking ability of indexes to retrieve rows from a clustered index. La columna Argument contiene el nombre del índice agrupado que se va a usar y el predicado SEEK:().The Argument column contains the name of the clustered index being used and the SEEK:() predicate. El motor de almacenamiento utiliza el índice para procesar solamente las filas que cumplen el predicado SEEK:().The storage engine uses the index to process only those rows that satisfy this SEEK:() predicate. También puede incluir un predicado WHERE:() en el que el motor de almacenamiento determine todas las filas que cumplan el predicado SEEK:(), aunque este predicado es opcional y no utiliza índices para completar el proceso.It can also include a WHERE:() predicate where the storage engine evaluates against all rows that satisfy the SEEK:() predicate, but this is optional and does not use indexes to complete this process.

Si la columna Argument contiene la cláusula ORDERED, significa que el procesador de consultas ha determinado que se deben devolver las filas en el orden en el que el índice clúster las haya clasificado.If the Argument column contains the ORDERED clause, the query processor has determined that the rows must be returned in the order in which the clustered index has sorted them. Si no hay una cláusula ORDERED, el motor de almacenamiento busca el índice de la forma óptima (sin tener que ordenar el resultado).If the ORDERED clause is not present, the storage engine searches the index in the optimal way, without necessarily sorting the output. Permitir que el resultado conserve su ordenación puede ser menos eficiente que generar un resultado no ordenado.Allowing the output to retain its ordering can be less efficient than producing nonsorted output. Si aparece la palabra clave LOOKUP, significa que se está realizando una búsqueda de marcadores.When the keyword LOOKUP appears, then a bookmark lookup is being performed. En SQL Server 2008SQL Server 2008 y versiones posteriores, el operador Key Lookup proporciona la función de búsqueda de marcadores.In SQL Server 2008SQL Server 2008 and later versions, the Key Lookup operator provides bookmark lookup functionality. Clustered Index Seek es un operador lógico y físico.Clustered Index Seek is a logical and physical operator.
Icono del operador Clustered Index UpdateClustered index update operator icon Clustered Index UpdateClustered Index Update El operador Clustered Index Update actualiza las filas de entrada del índice agrupado especificado en la columna Argument . Si hay un predicado WHERE:(), solo se actualizan las filas que cumplen el predicado.The Clustered Index Update operator updates input rows in the clustered index specified in the Argument column.If a WHERE:() predicate is present, only those rows that satisfy this predicate are updated. Si hay un predicado SET:(), se asigna este valor a todas las filas actualizadas.If a SET:() predicate is present, each updated column is set to this value. Si hay un predicado DEFINE:(), se muestran los valores que define este operador.If a DEFINE:() predicate is present, the values that this operator defines are listed. Se puede hacer referencia a estos valores en la cláusula SET o en cualquier parte del operador, y en cualquier parte de esta consulta.These values may be referenced in the SET clause or elsewhere within this operator and elsewhere within this query. Clustered Index Update es un operador lógico y físico.Clustered Index Update is a logical and physical operator.
Icono del operador CollapseCollapse operator icon ContraerCollapse El operador Collapse optimiza el proceso de actualización.The Collapse operator optimizes update processing. Cuando se realiza una actualización, esta se puede dividir (con el operador Split ) en una eliminación y una inserción.When an update is performed, it can be split (using the Split operator) into a delete and an insert. La columna Argument contiene una cláusula GROUP BY:() que especifica una lista de columnas de clave.The Argument column contains a GROUP BY:() clause that specifies a list of key columns. Si el procesador de consultas encuentra filas adyacentes que eliminan e insertan los mismos valores clave, reemplazará estas operaciones independientes por una única operación de actualización más eficaz.If the query processor encounters adjacent rows that delete and insert the same key values, it replaces these separate operations with a single more efficient update operation. Collapse es un operador lógico y físico.Collapse is a logical and physical operator.
Exploración de índice de almacén de columnasColumnstore Index Scan Exploración de índice de almacén de columnasColumnstore Index Scan El operador Columnstore Index Scan recorre el índice columnstore especificado en la columna Argument del plan de ejecución de consulta.The Columnstore Index Scan operator scans the columnstore index specified in the Argument column of the query execution plan.
Icono del operador Compute ScalarCompute scalar operator icon Compute ScalarCompute Scalar El operador Compute Scalar evalúa una expresión para generar un valor escalar calculado.The Compute Scalar operator evaluates an expression to produce a computed scalar value. que se puede devolver al usuario, hacer referencia a él en cualquier otra parte de la consulta, o ambas cosas a la vez, por ejemplo,This may then be returned to the user, referenced elsewhere in the query, or both. en un predicado de filtro o de combinación.An example of both is in a filter predicate or join predicate. Compute Scalar es un operador lógico y físico.Compute Scalar is a logical and physical operator.

Es posible que los operadoresCompute Scalar que aparecen en planes de presentación generados por SET STATISTICS XML no contengan el elemento RunTimeInformation .Compute Scalar operators that appear in Showplans generated by SET STATISTICS XML might not contain the RunTimeInformation element. En planes de presentación gráficos, es posible que las opciones Número de filas real, Reenlaces realesy Rebobinados reales no aparezcan en la ventana Propiedades cuando la opción Incluir plan de ejecucion real está seleccionada en SQL Server Management StudioSQL Server Management Studio.In graphical Showplans, Actual Rows, Actual Rebinds, and Actual Rewinds might be absent from the Properties window when the Include Actual Execution Plan option is selected in SQL Server Management StudioSQL Server Management Studio. Si esto ocurre, significa que, aunque estos operadores se han utilizado en el plan de consulta compilado, otros operadores han realizado su trabajo en el plan de consulta en tiempo de ejecución.When this occurs, it means that although these operators were used in the compiled query plan, their work was performed by other operators in the run-time query plan. Tenga en cuenta también que el número de ejecuciones en el resultado del plan de presentación generado por SET STATISTICS PROFILE es equivalente a la suma de reenlaces y rebobinados de planes de presentación generados por SET STATISTICS XML.Also note that the number of executes in Showplan output generated by SET STATISTICS PROFILE is equivalent to the sum of rebinds and rewinds in Showplans generated by SET STATISTICS XML.
Icono del operador ConcatenationConcatenation operator icon ConcatenationConcatenation El operador Concatenation explora varias entradas y devuelve cada fila explorada.The Concatenation operator scans multiple inputs, returning each row scanned. Normalmente,Concatenation se utiliza para implementar la construcción UNION ALL de Transact-SQLTransact-SQL .Concatenation is typically used to implement the Transact-SQLTransact-SQL UNION ALL construct. El operador físico Concatenation tiene dos o más entradas y una salida.The Concatenation physical operator has two or more inputs and one output. Concatenation copia filas del primer flujo de entrada en el flujo de salida y, a continuación, repite esta operación con cada flujo de entrada adicional.Concatenation copies rows from the first input stream to the output stream, then repeats this operation for each additional input stream. Concatenation es un operador lógico y físico.Concatenation is a logical and physical operator.
Icono del operador Constant ScanConstant scan operator icon Constant ScanConstant Scan El operador Constant Scan escribe una o varias filas de constantes en una consulta.The Constant Scan operator introduces one or more constant rows into a query. El operador Compute Scalar se suele usar después de Constant Scan para agregar columnas a una fila generada por el operador Compute Scalar.A Compute Scalar operator is often used after a Constant Scan to add columns to a row produced by the Constant Scan operator.
Icono del elemento del lenguaje Convert (motor de base de datos)Convert (Database Engine) language element icon ConvertirConvert El operador Convert convierte un tipo de datos escalar en otro.The Convert operator converts one scalar data type to another. Convert es un elemento del lenguaje.Convert is a language element.
NoneNone Cross JoinCross Join El operador Cross Join combina cada fila de la primera entrada (superior) con cada fila de la segunda entrada (inferior).The Cross Join operator joins each row from the first (top) input with each row from the second (bottom) input. Cross Join es un operador lógico.Cross Join is a logical operator.
NoneNone CursorCursor Los operadores lógicos y físicos Cursor se usan para describir cómo se ha ejecutado una consulta o una actualización que implican la ejecución de operaciones con cursores.The Cursor logical and physical operators are used to describe how a query or update involving cursor operations is executed. Los operadores físicos describen el algoritmo físico de implementación utilizado para procesar el cursor, por ejemplo, con un cursor dinámico.The physical operators describe the physical implementation algorithm used to process the cursor; for example, using a keyset-driven cursor. Cada paso de la ejecución de un cursor implica un operador físico.Each step in the execution of a cursor involves a physical operator. Los operadores lógicos describen una propiedad del cursor, como, por ejemplo, si el cursor es de solo lectura.The logical operators describe a property of the cursor, such as the cursor is read only.

Los operadores lógicos incluyen asincrónico, optimista, principal, solo lectura, bloqueos de desplazamiento, y secundario y sincrónico.Logical operators include Asynchronous, Optimistic, Primary, Read Only, Scroll Locks, and Secondary and Synchronous.

Los operadores físicos incluyen Dynamic, Fetch Query, Keyset, Population Query, Refresh Query y Snapshot.Physical operators include Dynamic, Fetch Query, Keyset, Population Query, Refresh Query and Snapshot.
Icono del operador de cursor de selección de cursor (catchall)Cursor catchall cursor operator icon catchallcatchall El icono de selección (catchall) se muestra cuando la lógica que genera planes de presentación gráficos no puede encontrar un icono adecuado para el iterador.The catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical showplans. Este icono no indica necesariamente una condición de error.The catchall icon does not necessarily indicate an error condition. Hay tres iconos de selección (catchall): azul (para iteradores), naranja (para cursores) y verde (para elementos del lenguaje Transact-SQLTransact-SQL ).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language elements).
Icono del elemento del lenguaje DeclareDeclare language element icon DeclareDeclare El operador Declare asigna una variable local en el plan de consulta.The Declare operator allocates a local variable in the query plan. Declare es un elemento del lenguaje.Declare is a language element.
Icono del operador Delete (motor de base de datos)Delete (Database Engine) operator icon EliminarDelete El operador Delete elimina de un objeto las filas que satisfacen el predicado opcional de la columna Argument .The Delete operator deletes from an object rows that satisfy the optional predicate in the Argument column.
Icono del operador Delete ScanDelete scan operator icon Deleted ScanDeleted Scan El operador Deleted Scan recorre la tabla eliminada en un desencadenador.The Deleted Scan operator scans the deleted table within a trigger.
NoneNone Distinct SortDistinct Sort El operador lógico Distinct Sort examina la entrada, quita los duplicados y ordena por las columnas especificadas en el predicado ORDER BY:() de la columna Argument .The Distinct Sort logical operator scans the input, removing duplicates and sorting by the columns specified in the DISTINCT ORDER BY:() predicate of the Argument column. Distinct Sort es un operador lógico.Distinct Sort is a logical operator.
NoneNone DistinctDistinct El operador Distinct quita los duplicados de un conjunto de filas o de una colección de valores.The Distinct operator removes duplicates from a rowset or from a collection of values. Distinct es un operador lógico.Distinct is a logical operator.
Icono del operador de paralelismo Distribute StreamsDistribute streams parallelism operator icon Distribute StreamsDistribute Streams El operador Distribute Streams solo se usa en los planes de consulta paralelos.The Distribute Streams operator is used only in parallel query plans. El operador Distribute Streams utiliza una solo flujo de entrada de registros y genera varios flujos de salida.The Distribute Streams operator takes a single input stream of records and produces multiple output streams. No se cambia el contenido de los registros ni su formato.The record contents and format are not changed. Cada registro del flujo de entrada aparece en uno de los flujos de salida.Each record from the input stream appears in one of the output streams. Este operador conserva automáticamente el orden relativo de los registros de entrada en los flujos de salida.This operator automatically preserves the relative order of the input records in the output streams. Normalmente, se utilizan algoritmos hash para decidir a qué flujo de salida pertenece un determinado registro de entrada.Usually, hashing is used to decide to which output stream a particular input record belongs.

Si la salida tiene particiones, la columna Argument contiene un predicado PARTITION COLUMNS:() y las columnas de particiones.If the output is partitioned, then the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns. Distribute Streams es un operador lógicoDistribute Streams is a logical operator
Icono del operador de cursor DynamicDynamic cursor operator icon DinámicaDynamic El operador Dynamic usa un cursor que puede ver todos los cambios que han realizado otros usuarios.The Dynamic operator uses a cursor that can see all changes made by others.
Icono del operador de cursor Fetch QueryFetch query cursor operator icon Fetch QueryFetch Query El operador Fetch Query recupera filas cuando se emite una captura en un cursor.The Fetch Query operator retrieves rows when a fetch is issued against a cursor.
Icono del operador Filter (motor de base de datos)Filter (Database Engine) operator icon FilterFilter El operador Filter examina la entrada y solo devuelve las filas que cumplen la expresión del filtro (predicado) que aparece en la columna Argument .The Filter operator scans the input, returning only those rows that satisfy the filter expression (predicate) that appears in the Argument column.
NoneNone Flow DistinctFlow Distinct El operador lógico Flow Distinct recorre la entrada y quita los duplicados.The Flow Distinct logical operator scans the input, removing duplicates. Mientras que el operador Distinct procesa todas las entradas antes de obtener resultados, el operador FlowDistinct devuelve cada fila a medida que se obtiene de la entrada (a menos que la fila esté duplicada, en cuyo caso se descarta).Whereas the Distinct operator consumes all input before producing any output, the FlowDistinct operator returns each row as it is obtained from the input (unless that row is a duplicate, in which case it is discarded).
Icono del operador de comprobación de referencias de claves externasForeign key references check operator icon Comprobación de referencias de claves externasForeign Key References Check El operador Comprobación de referencias de claves externas realiza comprobaciones de integridad referencial locales, mediante la comparación de la fila modificada con las filas de las tablas de referencia para comprobar que la modificación no interrumpirá la integridad referencial.The Foreign Key References Check operator performs referential integrity checks in place, by comparing the modified row to the rows in the referencing tables to verify that the modification will not break the referential integrity. El operador Comprobación de referencias de claves externas se usa cuando existen más de 253 referencias de clave externa en la misma clave principal o única.The Foreign Key References Check operator is used when more than 253 foreign key references exist on the same primary or unique key. Comprobación de referencias de claves externas es un operador lógico y físico.Foreign Key References Check is a logical and physical operator.
NoneNone Full Outer JoinFull Outer Join El operador lógico Full Outer Join devuelve cada fila que cumple el predicado de combinación de la primera entrada (superior) combinada con cada fila de la segunda entrada (inferior).The Full Outer Join logical operator returns each row satisfying the join predicate from the first (top) input joined with each row from the second (bottom) input. También devuelve filas de:It also returns rows from:

-La primera entrada que no tenga coincidencias en la segunda entrada.-The first input that had no matches in the second input.

-La segunda entrada que no tenga coincidencias en la primera entrada.-The second input that had no matches in the first input.

La entrada que no contiene valores coincidentes se devuelve como un valor nulo.The input that does not contain the matching values is returned as a null value. Full Outer Join es un operador lógico.Full Outer Join is a logical operator.
Icono del operador de paralelismo Gather streamsGather streams parallelism operator icon Gather StreamsGather Streams El operador Gather Streams solo se usa en planes de consulta paralelos.The Gather Streams operator is only used in parallel query plans. El operador Gather Streams procesa varios flujos de entrada y produce un único flujo de salida de registros combinando los flujos de entrada.The Gather Streams operator consumes several input streams and produces a single output stream of records by combining the input streams. No se cambia el contenido de los registros ni su formato.The record contents and format are not changed. Si este operador conserva el orden, todos los flujos de entrada deben estar ordenados.If this operator is order preserving, all input streams must be ordered. Si se ordena la salida, la columna Argument contiene un predicado ORDER BY:() y los nombres de las columnas que se ordenan.If the output is ordered, the Argument column contains an ORDER BY:() predicate and the names of columns being ordered. Gather Streams es un operador lógico.Gather Streams is a logical operator.
Icono del operador Hash MatchHash match operator icon Hash MatchHash Match El operador Hash Match genera una tabla hash y calcula un valor hash para cada fila de su entrada de compilación.The Hash Match operator builds a hash table by computing a hash value for each row from its build input. En la columna Argument aparece un predicado HASH:() con una lista de las columnas usadas para crear un valor hash.A HASH:() predicate with a list of columns used to create a hash value appears in the Argument column. A continuación, por cada fila de sondeo (como corresponda), calcula un valor hash (con la misma función hash) y busca las coincidencias en la tabla hash.Then, for each probe row (as applicable), it computes a hash value (using the same hash function) and looks in the hash table for matches. Si hay un predicado residual (identificado mediante RESIDUAL:() en la columna Argument ), ese predicado también debe cumplirse para que una fila se considere una coincidencia.If a residual predicate is present (identified by RESIDUAL:() in the Argument column), that predicate must also be satisfied for rows to be considered a match. El comportamiento depende de la operación lógica que se esté realizando:Behavior depends on the logical operation being performed:

-Para cualquier combinación, utilice la primera entrada (superior) para generar la tabla hash y la segunda entrada (inferior) para sondear la tabla hash.-For any joins, use the first (top) input to build the hash table and the second (bottom) input to probe the hash table. Obtendrá como resultado las coincidencias (o las no coincidencias) que indique el tipo de combinación.Output matches (or nonmatches) as dictated by the join type. Si varias combinaciones utilizan la misma columna de combinación, estas operaciones se agrupan en un equipo hash.If multiple joins use the same join column, these operations are grouped into a hash team.

-Para los operadores Distinct o Aggregate, utilice la entrada para generar la tabla hash (para ello, quite los duplicados y calcule las expresiones de agregado).-For the distinct or aggregate operators, use the input to build the hash table (removing duplicates and computing any aggregate expressions). Cuando se haya generado la tabla hash, recorra la tabla y presente todas las entradas.When the hash table is built, scan the table and output all entries.

-En el caso del operador Union, utilice la primera entrada para generar la tabla hash (para ello, quite los duplicados).-For the union operator, use the first input to build the hash table (removing duplicates). Use la segunda entrada (que no debe tener duplicados) para sondear la tabla hash, devolver todas las filas que no tengan coincidencias y, a continuación, recorrer la tabla hash para devolver todas las entradas.Use the second input (which must have no duplicates) to probe the hash table, returning all rows that have no matches, then scan the hash table and return all entries.
Hash Match es un operador físico.Hash Match is a physical operator. Para obtener más información, vea Descripción de las combinaciones hash.For more information, see Understanding Hash joins.
Icono del elemento del lenguaje IfIf language element icon SiIf El operador If lleva a cabo el procesamiento condicional basado en una expresión.The If operator carries out conditional processing based on an expression. If es un elemento del lenguaje.If is a language element.
NoneNone Inner JoinInner Join El operador lógico Inner Join devuelve todas las filas que cumplen la combinación de la primera entrada (superior) con la segunda entrada (inferior).The Inner Join logical operator returns each row that satisfies the join of the first (top) input with the second (bottom) input.
Icono del operador Insert (motor de base de datos)Insert (Database Engine) operator icon InsertInsert El operador lógico Insert inserta cada fila de su entrada en el objeto especificado en la columna Argument .The Insert logical operator inserts each row from its input into the object specified in the Argument column. El operador físico es Table Insert, Index Inserto Clustered Index InsertThe physical operator is either the Table Insert, Index Insert, or Clustered Index Insert operator.
Icono del operador Inserted ScanInserted scan operator icon Inserted ScanInserted Scan El operador Inserted Scan recorre la tabla insertada .The Inserted Scan operator scans the inserted table. Inserted Scan es un operador lógico y físico.Inserted Scan is a logical and physical operator.
Icono del elemento del lenguaje IntrinsicIntrinsic language element icon IntrinsicIntrinsic El operador Intrinsic invoca una función Transact-SQLTransact-SQL interna.The Intrinsic operator invokes an internal Transact-SQLTransact-SQL function. Intrinsic es un elemento del lenguaje.Intrinsic is a language element.
Icono del operador de selección (catchall) IteratorIterator catchall operator icon IteratorIterator El icono de selección (catchall) Iterator se muestra cuando la lógica que genera planes de presentación gráficos no puede encontrar un icono adecuado para el iterador.The Iterator catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. Este icono no indica necesariamente una condición de error.The catchall icon does not necessarily indicate an error condition. Hay tres iconos de selección (catchall): azul (para iteradores), naranja (para cursores) y verde (para construcciones del lenguaje Transact-SQLTransact-SQL ).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
Icono del operador Bookmark LookupBookmark lookup operator icon Key LookupKey Lookup El operador Key Lookup es una búsqueda de marcadores en un tabla con un índice clúster.The Key Lookup operator is a bookmark lookup on a table with a clustered index. La columna Argument contiene el nombre del índice clúster y la clave de agrupación en clústeres utilizada para buscar la fila en el índice clúster.The Argument column contains the name of the clustered index and the clustering key used to look up the row in the clustered index. Key Lookup está siempre acompañado por un operador Nested Loops .Key Lookup is always accompanied by a Nested Loops operator. Si en la columna Argument aparece la cláusula WITH PREFETCH, el procesador de consultas habrá determinado que resulta óptimo usar una captura previa asincrónica (lectura anticipada) al buscar marcadores en el índice agrupado.If the WITH PREFETCH clause appears in the Argument column, the query processor has determined that it is optimal to use asynchronous prefetching (read-ahead) when looking up bookmarks in the clustered index.

El uso de un operador Key Lookup en un plan de consulta indica que la consulta puede beneficiarse de la optimización del rendimiento.The use of a Key Lookup operator in a query plan indicates that the query might benefit from performance tuning. Por ejemplo, el rendimiento de las consultas se puede mejorar al agregar un índice de cobertura.For example, query performance might be improved by adding a covering index.
Icono del operador de cursor KeysetKeyset cursor operator icon KeysetKeyset El operador Keyset usa un cursor que puede ver las actualizaciones, pero no las inserciones que realizan los demás.The Keyset operator uses a cursor that can see updates, but not inserts made by others.
Icono de selección (catchall) Language ElementLanguage element catchall icon Elemento LanguageLanguage Element El icono de selección (catchall) Language Element se muestra cuando la lógica que genera planes de presentación gráficos no puede encontrar un icono adecuado para el iterador.The Language Element catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. Este icono no indica necesariamente una condición de error.The catchall icon does not necessarily indicate an error condition. Hay tres iconos de selección (catchall): azul (para iteradores), naranja (para cursores) y verde (para construcciones del lenguaje Transact-SQLTransact-SQL ).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
NoneNone Left Anti Semi JoinLeft Anti Semi Join El operador Left Anti Semi Join devuelve todas las filas de la primera entrada (superior) cuando no hay ninguna fila coincidente en la segunda entrada (inferior).The Left Anti Semi Join operator returns each row from the first (top) input when there is no matching row in the second (bottom) input. Si no hay ningún predicado de combinación en la columna Argument , cada fila es una fila coincidente.If no join predicate exists in the Argument column, each row is a matching row. Left Anti Semi Join es un operador lógico.Left Anti Semi Join is a logical operator.
NoneNone Left Outer JoinLeft Outer Join El operador Left Outer Join devuelve cada fila que cumple la combinación de la primera entrada (superior) con la segunda entrada (inferior).The Left Outer Join operator returns each row that satisfies the join of the first (top) input with the second (bottom) input. También devuelve las filas de la primera entrada que no tienen filas coincidentes en la segunda entrada.It also returns any rows from the first input that had no matching rows in the second input. Las filas que no coinciden en la segunda entrada se devuelven como valores NULL.The nonmatching rows in the second input are returned as null values. Si no hay ningún predicado de combinación en la columna Argument , cada fila es una fila coincidente.If no join predicate exists in the Argument column, each row is a matching row. Left Outer Join es un operador lógico.Left Outer Join is a logical operator.
NoneNone Left Semi JoinLeft Semi Join El operador Left Semi Join devuelve todas las filas de la primera entrada (superior) cuando hay una fila coincidente en la segunda entrada (inferior).The Left Semi Join operator returns each row from the first (top) input when there is a matching row in the second (bottom) input. Si no hay ningún predicado de combinación en la columna Argument , cada fila es una fila coincidente.If no join predicate exists in the Argument column, each row is a matching row. Left Semi Join es un operador lógico.Left Semi Join is a logical operator.
Icono del operador Log Row ScanLog row scan operator icon Log Row ScanLog Row Scan El operador Log Row Scan recorre el registro de transacciones.The Log Row Scan operator scans the transaction log. Log Row Scan es un operador lógico y físico.Log Row Scan is a logical and physical operator.
Icono del operador Merge intervalMerge interval operator icon Merge IntervalMerge Interval El operador Merge Interval combina varios intervalos (que pueden superponerse) para producir intervalos mínimos que no se superponen y que se usan para buscar entradas de índice.The Merge Interval operator merges multiple (potentially overlapping) intervals to produce minimal, nonoverlapping intervals that are then used to seek index entries. Este operador aparece normalmente sobre uno o más operadores Compute Scalar sobre operadores Constant Scan , que construyen los intervalos (representados como columnas de una fila) que combina este operador.This operator typically appears above one or more Compute Scalar operators over Constant Scan operators, which construct the intervals (represented as columns in a row) that this operator merges. Merge Interval es un operador lógico y físico.Merge Interval is a logical and physical operator.
Icono del operador Merge joinMerge join operator icon Merge JoinMerge Join El operador Merge Join realiza las siguientes operaciones lógicas de combinación interna (inner join), combinación externa izquierda (left outer join), semicombinación izquierda (left semi join), antisemicombinación izquierda (left anti semi join), combinación externa derecha (right outer join), semicombinación derecha (right semi join), antisemicombinación derecha (right anti semi join) y unión (union).The Merge Join operator performs the inner join, left outer join, left semi join, left anti semi join, right outer join, right semi join, right anti semi join, and union logical operations.

En la columna Argument , el operador Merge Join contiene un predicado MERGE:() si la operación realiza una combinación uno a varios, o un predicado MANY-TO-MANY MERGE:() si la operación realiza una combinación varios a varios.In the Argument column, the Merge Join operator contains a MERGE:() predicate if the operation is performing a one-to-many join, or a MANY-TO-MANY MERGE:() predicate if the operation is performing a many-to-many join. La columna Argument incluye una lista separada por comas de las columnas usadas para realizar la operación.The Argument column also includes a comma-separated list of columns used to perform the operation. El operador Merge Join requiere dos entradas ordenadas por sus respectivas columnas, que se pueden realizar mediante la inserción de operaciones de ordenación explícitas en el plan de consulta.The Merge Join operator requires two inputs sorted on their respective columns, possibly by inserting explicit sort operations into the query plan. El operador Merge Join es especialmente eficaz si no se necesita un orden explícito, por ejemplo, si hay un índice idóneo de árbol b en la base de datos o si el orden se puede aprovechar en varias operaciones, como en una combinación de mezcla y una agrupación con acumulación.Merge join is particularly effective if explicit sorting is not required, for example, if there is a suitable B-tree index in the database or if the sort order can be exploited for multiple operations, such as a merge join and grouping with roll up. Merge Join es un operador físico.Merge Join is a physical operator. Para obtener más información, vea Comprender las combinaciones de mezcla.For more information, see Understanding Merge joins.
Icono del operador Nested LoopsNested loops operator icon Nested LoopsNested Loops El operador Nested Loops realiza las operaciones lógicas de combinación interna, combinación externa izquierda, semicombinación izquierda y anti semicombinación.The Nested Loops operator performs the inner join, left outer join, left semi join, and left anti semi join logical operations. Las combinaciones de bucles anidados realizan una búsqueda en la tabla interna por cada fila de la tabla externa, normalmente mediante un índice.Nested loops joins perform a search on the inner table for each row of the outer table, typically using an index. El procesador de consultas decide, en función de los costos anticipados, si debe ordenar o no la entrada externa para mejorar la ubicación de las búsquedas en el índice sobre la entrada interna.The query processor decides, based on anticipated costs, whether to sort the outer input in order to improve locality of the searches on the index over the inner input. Se devuelven las filas que cumplen el predicado (opcional) de la columna Argument (como corresponda según la operación lógica que se realice).Any rows that satisfy the (optional) predicate in the Argument column are returned as applicable, based on the logical operation being performed. Cuando el atributo OPTIMIZED está establecido en True, significa que se usan bucles anidados optimizados (o una ordenación por lotes).When the OPTIMIZED attribute is set to True, it means that an Optimized Nested Loops (or Batch Sort) is used. Nested Loops es un operador físico.Nested Loops is a physical operator. Para obtener más información, vea Descripción de las combinaciones de bucles anidados.For more information, see Understanding Nested Loops joins.
Icono del operador Nonclustered Index DeleteNonclustered index delete operator icon Nonclustered Index DeleteNonclustered Index Delete El operador Nonclustered Index Delete elimina las filas de entrada del índice no clúster especificado en la columna Argument .The Nonclustered Index Delete operator deletes input rows from the nonclustered index specified in the Argument column. Nonclustered Index Delete es un operador físico.Nonclustered Index Delete is a physical operator.
Icono del operador Nonclustered Index InsertNonclustered index insert operator icon Index InsertIndex Insert El operador Index Insert inserta filas de su entrada en el índice no clúster especificado en la columna Argument .The Index Insert operator inserts rows from its input into the nonclustered index specified in the Argument column. La columna Argument también contiene un predicado SET:(), que indica el valor en el que se establece cada columna.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Index Insert es un operador físico.Index Insert is a physical operator.
Icono del operador Nonclustered Index ScanNonclustered index scan operator icon Index ScanIndex Scan El operador Index Scan recupera todas las filas del índice no clúster especificadas en la columna Argument .The Index Scan operator retrieves all rows from the nonclustered index specified in the Argument column. Si aparece un predicado opcional WHERE:() en la columna Argument , solo se devuelven las filas que cumplen el predicado.If an optional WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Index Scan es un operador lógico y físico.Index Scan is a logical and physical operator.
Icono del operador Nonclustered Index SeekNonclustered index seek operator icon Index SeekIndex Seek El operador Index Seek usa la capacidad de búsqueda de los índices para recuperar filas de un índice no clúster.The Index Seek operator uses the seeking ability of indexes to retrieve rows from a nonclustered index. La columna Argument contiene el nombre del índice no clúster utilizado.The Argument column contains the name of the nonclustered index being used. También contiene el predicado SEEK:().It also contains the SEEK:() predicate. El motor de almacenamiento utiliza el índice para procesar solamente las filas que cumplen el predicado SEEK:().The storage engine uses the index to process only those rows that satisfy the SEEK:() predicate. También se puede incluir un predicado WHERE:(), predicado que evaluará el motor de almacenamiento respecto a todas las filas que cumplan el predicado SEEK:() (no se utilizan los índices para esta comprobación).It optionally may include a WHERE:() predicate, which the storage engine will evaluate against all rows that satisfy the SEEK:() predicate (it does not use the indexes to do this). Si la columna Argument contiene la cláusula ORDERED, significa que el procesador de consultas ha determinado que se deben devolver las filas en el orden en el que el índice no clúster las haya clasificado.If the Argument column contains the ORDERED clause, the query processor has determined that the rows must be returned in the order in which the nonclustered index has sorted them. Si no hay una cláusula ORDERED, el motor de almacenamiento busca el índice de la forma óptima (que no garantiza que el resultado se ordene).If the ORDERED clause is not present, the storage engine searches the index in the optimal way (which does not guarantee that the output will be sorted). Permitir que el resultado mantenga su ordenación puede ser menos eficiente que generar un resultado no ordenado.Allowing the output to retain its ordering may be less efficient than producing nonsorted output. Index Seek es un operador lógico y físico.Index Seek is a logical and physical operator.
Icono del operador Index Scan no agrupadoNonclustered index spool operator icon Index SpoolIndex Spool El operador físico Index Spool contiene un predicado SEEK:() en la columna Argument .The Index Spool physical operator contains a SEEK:() predicate in the Argument column. El operador Index Spool examina sus filas de entrada, coloca una copia de cada fila en un archivo de cola oculto (almacenado en la base de datos tempdb y que solo existe mientras dure la consulta) y genera un índice no agrupado en las filas.The Index Spool operator scans its input rows, placing a copy of each row in a hidden spool file (stored in the tempdb database and existing only for the lifetime of the query), and builds a nonclustered index on the rows. Esto permite utilizar la capacidad de búsqueda de los índices para presentar solo las filas que cumplan el predicado SEEK:().This allows you to use the seeking capability of indexes to output only those rows that satisfy the SEEK:() predicate. Si se hace retroceder el operador (por ejemplo, con un operador Nested Loops ) pero no es necesario volver a enlazar, se usan los datos de la cola en lugar de volver a examinar la entrada.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input.
Icono del operador Nonclustered Index UpdateNonclustered index update operator icon Nonclustered Index UpdateNonclustered Index Update El operador físico Nonclustered Index Update actualiza las filas de su entrada en el índice no clúster especificado en la columna Argument .The Nonclustered Index Update physical operator updates rows from its input in the nonclustered index specified in the Argument column. Si hay un predicado SET:(), se asigna este valor a todas las filas actualizadas.If a SET:() predicate is present, each updated column is set to this value. Nonclustered Index Update es un operador físico.Nonclustered Index Update is a physical operator.
Icono del operador Online Index InsertOnline index insert operator icon Online Index InsertOnline Index Insert El operador físico Online Index Insert indica que una operación de crear, modificar o colocar índice se realiza en línea.The Online Index Insert physical operator indicates that an index create, alter, or drop operation is performed online. Es decir, los datos de la tabla subyacente permanecen disponible para los usuarios durante la operación de índice.That is, the underlying table data remains available to users during the index operation.
NoneNone ParallelismParallelism El operador Parallelism (o iterador de intercambios) realiza las operaciones lógicas de distribución, recopilación y repartición de secuencias.The Parallelism operator (or Exchange Iterator) performs the distribute streams, gather streams, and repartition streams logical operations. Las columnas Argument pueden contener un predicado PARTITION COLUMNS:() con una lista separada por comas de las columnas que se van a particionar.The Argument columns can contain a PARTITION COLUMNS:() predicate with a comma-separated list of the columns being partitioned. Las columnas Argument también pueden contener un predicado ORDER BY:(), con una lista de las columnas que deben conservar el criterio de ordenación durante la creación de particiones.The Argument columns can also contain an ORDER BY:() predicate, listing the columns to preserve the sort order for during partitioning. Parallelism es un operador físico.Parallelism is a physical operator. Para obtener más información sobre el operador Parallelism, vea la serie del blog de Craig Freedman.For more information about the Parallelism operator, see Craig Freedman's blog series.

Nota: Si una consulta se ha compilado como consulta paralela, pero en tiempo de ejecución se ejecuta como una consulta en serie, el resultado del plan de presentación generado por SET STATISTICS XML o mediante la opción Incluir plan de ejecución real de SQL Server Management StudioSQL Server Management Studio no contendrá el elemento RunTimeInformation del operador Parallelism.Note: If a query has been compiled as a parallel query, but at run time it is run as a serial query, the Showplan output generated by SET STATISTICS XML or by using the Include Actual Execution Plan option in SQL Server Management StudioSQL Server Management Studio will not contain the RunTimeInformation element for the Parallelism operator. En el resultado de SET STATISTICS PROFILE, el recuento real de filas y el número real de ejecuciones mostrará ceros para el operador Parallelism .In SET STATISTICS PROFILE output, the actual row counts and actual number of executes will display zeroes for the Parallelism operator. Si se produce alguna de estas condiciones, significa que el operador Parallelism solo se ha usado durante la compilación de la consulta, y no en el plan de consulta en tiempo de ejecución.When either condition occurs, it means that the Parallelism operator was only used during query compilation and not in the run-time query plan. Tenga en cuenta que a veces los planes de consulta paralelos se ejecutan en serie si existe una elevada carga simultánea en el servidor.Note that sometimes parallel query plans are run in serial if there is a high concurrent load on the server.
Icono del operador Parameter Table ScanParameter table scan operator icon Parameter Table ScanParameter Table Scan El operador Parameter Table Scan recorre una tabla que actúa como parámetro en la consulta actual.The Parameter Table Scan operator scans a table that is acting as a parameter in the current query. Normalmente, se usa para consultas INSERT en un procedimiento almacenado.Typically, this is used for INSERT queries within a stored procedure. Parameter Table Scan es un operador lógico y físico.Parameter Table Scan is a logical and physical operator.
NoneNone Partial AggregatePartial Aggregate Partial Aggregate se usa en planes paralelos.Partial Aggregate is used in parallel plans. Aplica una función de agregación a tantas filas de entrada como sea posible para que la escritura en el disco (también denominada "volcado") no sea necesaria.It applies an aggregation function to as many input rows as possible so that writing to disk (known as a "spill") is not necessary. Hash Match es el único operador físico (iterador) que implementa el agregado de la partición.Hash Match is the only physical operator (iterator) that implements partition aggregation. Partial Aggregate es un operador lógico.Partial Aggregate is a logical operator.
Icono del operador de cursor Population QueryPopulation query cursor operator icon Population QueryPopulation Query El operador Population Query rellena la tabla de trabajo de un cursor cuando se abre el cursor.The Population Query operator populates the work table of a cursor when the cursor is opened.
Icono del operador de cursor Refresh QueryRefresh query cursor operator icon Refresh QueryRefresh Query El operador Refresh Query captura los datos actuales de las filas del búfer de lectura.The Refresh Query operator fetches current data for rows in the fetch buffer.
Icono del operador Remote DeleteRemote delete operator icon Remote DeleteRemote Delete El operador Remote Delete elimina las filas de entrada de un objeto remoto.The Remote Delete operator deletes the input rows from a remote object. Remote Delete es un operador lógico y físico.Remote Delete is a logical and physical operator.
Operador de plan de presentación Remote Index ScanRemote index seek showplan operator Remote Index ScanRemote Index Scan El operador Remote Index Scan digitaliza el índice remoto especificado en la columna Argument.The Remote Index Scan operator scans the remote index specified in the Argument column. Remote Index Scan es un operador lógico y físico.Remote Index Scan is a logical and physical operator.
Operador de plan de presentación Remote Index ScanRemote index seek showplan operator Remote Index SeekRemote Index Seek El operador Remote Index Seek usa la capacidad de búsqueda de un objeto de índice remoto para recuperar filas.The Remote Index Seek operator uses the seeking ability of a remote index object to retrieve rows. La columna Argument contiene el nombre del índice remoto que se va a usar y el predicado SEEK:().The Argument column contains the name of the remote index being used and the SEEK:() predicate. Remote Index Seek es un operador lógico y físico.Remote Index Seek is a logical physical operator.
Icono del operador Remote InsertRemote insert operator icon Remote InsertRemote Insert El operador Remote Insert inserta las filas de entrada en un objeto remoto.The Remote Insert operator inserts the input rows into a remote object. Remote Insert es un operador lógico y físico.Remote Insert is a logical and physical operator.
Icono del operador Remote QueryRemote query operator icon Remote QueryRemote Query El operador Remote Query envía una consulta a un origen remoto.The Remote Query operator submits a query to a remote source. El texto de la consulta enviada al servidor remoto aparece en la columna Argument .The text of the query sent to the remote server appears in the Argument column. Remote Query es un operador lógico y físico.Remote Query is a logical and physical operator.
Icono del operador Remote ScanRemote scan operator icon Remote ScanRemote Scan El operador Remote Scan recorre un objeto remoto.The Remote Scan operator scans a remote object. El nombre del objeto remoto aparece en la columna Argument .The name of the remote object appears in the Argument column. Remote Scan es un operador lógico y físico.Remote Scan is a logical and physical operator.
Icono del operador Remote UpdateRemote update operator icon Remote UpdateRemote Update El operador Remote Update actualiza las filas de entrada en un objeto remoto.The Remote Update operator updates the input rows in a remote object. Remote Update es un operador lógico y físico.Remote Update is a logical and physical operator.
Icono del operador de paralelismo Repartition StreamsRepartition streams parallelism operator icon Repartition StreamsRepartition Streams El operador (o iterador de intercambios) Repartition Streams usa varias secuencias y produce varias secuencias de registros.The Repartition Streams operator (or exchange iterator) consumes multiple streams and produces multiple streams of records. No se cambia el contenido de los registros ni su formato.The record contents and format are not changed. Si el optimizador de consultas usa un filtro de mapas de bits, se reduce el número de filas del flujo de salida.If the query optimizer uses a bitmap filter, the number of rows in the output stream is reduced. Cada registro de un flujo de entrada se coloca en un flujo de salida.Each record from an input stream is placed into one output stream. Si el operador conserva el orden, se deben ordenar y mezclar todos los flujos de entrada en varios flujos de salida ordenados.If this operator is order preserving, all input streams must be ordered and merged into several ordered output streams. Si el resultado está dividido en particiones, la columna Argument contiene un predicado PARTITION COLUMNS:() y las columnas de particiones. Si el resultado está ordenado, la columna Argument contiene un predicado ORDER BY:() y las columnas que se ordenan.If the output is partitioned, the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns.If the output is ordered, the Argument column contains an ORDER BY:() predicate and the columns being ordered. Repartition Streams es un operador lógico.Repartition Streams is a logical operator. Este operador solo se usa en los planes de consulta paralelos.The operator is used only in parallel query plans.
Icono del elemento del lenguaje ResultResult language element icon ResultadoResult El operador Result incluye los datos devueltos al final de un plan de consulta.The Result operator is the data returned at the end of a query plan. Suele ser el elemento raíz de un plan de presentación.This is usually the root element of a Showplan. Result es un elemento del lenguaje.Result is a language element.
Icono del operador RID LookupRID lookup operator icon RID LookupRID Lookup RID Lookup es una búsqueda de marcadores en un montón que usa un identificador de fila suministrado (RID).RID Lookup is a bookmark lookup on a heap using a supplied row identifier (RID). La columna Argument contiene la etiqueta de marcador utilizada para buscar la fila en la tabla y el nombre de la tabla en la que se busca la fila.The Argument column contains the bookmark label used to look up the row in the table and the name of the table in which the row is looked up. RID Lookup siempre va acompañado de NESTED LOOP JOIN.RID Lookup is always accompanied by a NESTED LOOP JOIN. RID Lookup es un operador físico.RID Lookup is a physical operator. Para obtener más información sobre las búsquedas por marcador, vea "Bookmark Lookup" (en inglés) en el blog de SQL Server en MSDN.For more information about bookmark lookups, see "Bookmark Lookup" on the MSDN SQL Server blog.
Icono del operador Row Count SpoolRow count spool operator icon Row Count SpoolRow Count Spool El operador Row Count Spool recorre la entrada, cuenta el número de filas que hay y devuelve ese número de filas sin datos.The Row Count Spool operator scans the input, counting how many rows are present and returning the same number of rows without any data in them. Este operador se utiliza cuando es importante comprobar la existencia de las filas, en lugar de los datos que éstas contienen.This operator is used when it is important to check for the existence of rows, rather than the data contained in the rows. Por ejemplo, si un operador Nested Loops realiza una operación Left Semi Join y el predicado de combinación se aplica a la entrada interna, se puede colocar una cola de recuento de filas en la parte superior de la entrada interior del operador Nested Loops .For example, if a Nested Loops operator performs a left semi join operation and the join predicate applies to inner input, a row count spool may be placed at the top of the inner input of the Nested Loops operator. Después, el operador Nested Loops puede calcular el número de filas que obtiene la cola de recuento de filas (dado que los datos reales del lado interno no son necesarios) para determinar si se devolverá la fila externa.Then the Nested Loops operator can determine how many rows are output by the row count spool (because the actual data from the inner side is not needed) to determine whether to return the outer row. Row Count Spool es un operador físico.Row Count Spool is a physical operator.
NoneNone Right Anti Semi JoinRight Anti Semi Join El operador Right Anti Semi Join muestra todas las filas de la segunda entrada (inferior) para las que no hay una fila coincidente en la primera entrada (superior).The Right Anti Semi Join operator outputs each row from the second (bottom) input when a matching row in the first (top) input does not exist. Una fila coincidente se define como aquella que cumple el predicado de la columna Argument (si no hay un predicado, cada fila es una fila coincidente).A matching row is defined as a row that satisfies the predicate in the Argument column (if no predicate exists, each row is a matching row). Right Anti Semi Join es un operador lógico.Right Anti Semi Join is a logical operator.
NoneNone Right Outer JoinRight Outer Join El operador Right Outer Join devuelve cada fila que cumple la combinación de la segunda entrada (inferior) con cada fila coincidente de la primera entrada (superior).The Right Outer Join operator returns each row that satisfies the join of the second (bottom) input with each matching row from the first (top) input. También devolverá las filas de la segunda entrada que no tengan filas coincidentes en la primera entrada, combinadas con NULL (nulo).It also returns any rows from the second input that had no matching rows in the first input, joined with NULL. Si no hay ningún predicado de combinación en la columna Argument , cada fila es una fila coincidente.If no join predicate exists in the Argument column, each row is a matching row. Right Outer Join es un operador lógico.Right Outer Join is a logical operator.
NoneNone Right Semi JoinRight Semi Join El operador Right Semi Join devuelve todas las filas de la segunda entrada (inferior) para las que hay una fila coincidente en la primera entrada (superior).The Right Semi Join operator returns each row from the second (bottom) input when there is a matching row in the first (top) input. Si no hay ningún predicado de combinación en la columna Argument , cada fila es una fila coincidente.If no join predicate exists in the Argument column, each row is a matching row. Right Semi Join es un operador lógico.Right Semi Join is a logical operator.
Icono del operador SegmentSegment operator icon SegmentSegment Segment es un operador físico y lógico.Segment is a physical and a logical operator. Divide el conjunto de entrada en segmentos basados en el valor de una o varias columnas.It divides the input set into segments based on the value of one or more columns. Estas columnas se muestran como argumentos en el operador Segment .These columns are shown as arguments in the Segment operator. A continuación, muestra un segmento cada vez.The operator then outputs one segment at a time.
Icono del operador SequenceSequence operator icon SecuenciaSequence El operador Sequence controla los planes de actualización grandes.The Sequence operator drives wide update plans. Funcionalmente, ejecuta cada entrada en secuencia (de principio a fin).Functionally, it executes each input in sequence (top to bottom). Normalmente, cada entrada es una actualización de un objeto diferente.Each input is usually an update of a different object. Solo devuelve las filas que proceden de su última entrada (inferior).It returns only those rows that come from its last (bottom) input. Sequence es un operador lógico y físico.Sequence is a logical and physical operator.
Icono del operador Sequence ProjectSequence project operator icon Sequence ProjectSequence Project El operador Sequence Project agrega columnas para realizar cálculos sobre un conjunto ordenado.The Sequence Project operator adds columns to perform computations over an ordered set. Divide el conjunto de entrada en segmentos basados en el valor de una o varias columnas.It divides the input set into segments based on the value of one or more columns. A continuación, muestra un segmento cada vez.The operator then outputs one segment at a time. En el operador Sequence Project , las columnas se muestran como argumentos.These columns are shown as arguments in the Sequence Project operator. Sequence Project es un operador lógico y físico.Sequence Project is a logical and physical operator.
NoneNone Segment RepartitionSegment Repartition En un plan de consulta paralelo, a veces hay regiones conceptuales de iteradores.In a parallel query plan, sometimes there are conceptual regions of iterators. Todos los iteradores de una región así se pueden ejecutar mediante subprocesos paralelos.All of the iterators within such a region can be executed by parallel threads. Las regiones en sí deben ejecutarse en serie.The regions themselves must be executed serially. Algunos de los iteradores Parallelism de una región individual se denominan Branch Repartition.Some of the Parallelism iterators within an individual region are called Branch Repartition. El iterador Parallelism situado en el límite de dos de estas regiones se denomina Segment Repartition.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch Repartition y Segment Repartition son operadores lógicos.Branch Repartition and Segment Repartition are logical operators.
Icono del operador de cursor SnapshotSnapshot cursor operator icon SnapshotSnapshot El operador Snapshot crea un cursor que no detecta las modificaciones realizadas por otros.The Snapshot operator creates a cursor that does not see changes made by others.
Icono del operador SortSort operator icon SortSort El operador Sort ordena todas las filas entrantes.The Sort operator sorts all incoming rows. La columna Argument contiene un predicado DISTINCT ORDER BY:() si esta operación elimina las réplicas, o bien un predicado ORDER BY:() con una lista de las columnas, separadas por comas, que se van a ordenar.The Argument column contains either a DISTINCT ORDER BY:() predicate if duplicates are removed by this operation, or an ORDER BY:() predicate with a comma-separated list of the columns being sorted. Las columnas llevan como prefijo el valor ASC, si el orden de las columnas es ascendente, o el valor DESC, si es descendente.The columns are prefixed with the value ASC if the columns are sorted in ascending order, or the value DESC if the columns are sorted in descending order. Sort es un operador físico y lógico.Sort is a logical and physical operator.
Icono del operador SplitSplit operator icon SplitSplit El operador Split se utiliza para optimizar el procesamiento de actualizaciones.The Split operator is used to optimize update processing. Divide cada operación de actualización en una operación de eliminación y una operación de inserción.It splits each update operation into a delete and an insert operation. Split es un operador lógico y físico.Split is a logical and physical operator.
Icono del operador SpoolSpool operator icon Eager SpoolEager Spool El operador Eager Spool usa la entrada completa y almacena cada fila en un objeto temporal oculto almacenado en la base de datos tempdb .The Eager Spool operator takes the entire input, storing each row in a hidden temporary object stored in the tempdb database. Si se hace retroceder el operador (por ejemplo, con un operador Nested Loops ) pero no es necesario volver a enlazar, se usan los datos de la cola en lugar de volver a examinar la entrada.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Si es necesario volver a enlazar, se descartan los datos y se vuelve a generar el objeto de la cola; para ello se vuelve a recorrer la entrada (se vuelve a enlazar).If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. El operador Eager Spool crea su archivo de cola de forma "ansiosa": cuando el operador primario de la cola solicita la primera fila, el operador de cola consume todas las filas de su operador de entrada y las almacena en la cola.The Eager Spool operator builds its spool file in an "eager" manner: when the spool's parent operator asks for the first row, the spool operator consumes all rows from its input operator and stores them in the spool. Eager Spool es un operador lógico.Eager Spool is a logical operator.
Icono del operador SpoolSpool operator icon Lazy SpoolLazy Spool El operador lógico Lazy Spool almacena cada fila de su entrada en un objeto temporal oculto almacenado en la base de datos tempdb .The Lazy Spool logical operator stores each row from its input in a hidden temporary object stored in the tempdb database. Si se hace retroceder el operador (por ejemplo, con un operador Nested Loops ) pero no es necesario volver a enlazar, se usan los datos de la cola en lugar de volver a examinar la entrada.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Si es necesario volver a enlazar, se descartan los datos y se vuelve a generar el objeto de la cola; para ello se vuelve a recorrer la entrada (se vuelve a enlazar).If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. El operador Lazy Spool crea su archivo de cola de un modo "perezoso", es decir, cada vez que el operador principal de la cola pide una fila, el operador de cola obtiene una fila de su operador de entrada y la almacena en la cola, en lugar de consumir todas las filas de una vez.The Lazy Spool operator builds its spool file in a "lazy" manner, that is, each time the spool's parent operator asks for a row, the spool operator gets a row from its input operator and stores it in the spool, rather than consuming all rows at once. Lazy Spool es un operador lógico.Lazy Spool is a logical operator.
Icono del operador SpoolSpool operator icon SpoolSpool El operador Spool guarda un resultado de consulta intermedio en la base de datos tempdb .The Spool operator saves an intermediate query result to the tempdb database.
Icono del operador Stream AggregateStream aggregate operator icon Stream AggregateStream Aggregate El operador Stream Aggregate agrupa las filas por una o varias columnas y, a continuación, calcula una o varias expresiones agregadas devueltas por la consulta.The Stream Aggregate operator groups rows by one or more columns and then calculates one or more aggregate expressions returned by the query. El resultado de este operador puedes ser utilizado por operadores posteriores de la consulta, devuelto al cliente, o ambas cosas.The output of this operator can be referenced by later operators in the query, returned to the client, or both. El operador Stream Aggregate requiere una entrada ordenada por las columnas dentro de sus grupos.The Stream Aggregate operator requires input ordered by the columns within its groups. El optimizador usará un operador Sort antes de este operador si un operador Sort anterior no ha ordenado ya los datos o debido a una búsqueda o recorrido de índice ordenado.The optimizer will use a Sort operator prior to this operator if the data is not already sorted due to a prior Sort operator or due to an ordered index seek or scan. En la instrucción SHOWPLAN_ALL o en el plan de ejecución gráfico de SQL Server Management StudioSQL Server Management Studio, las columnas del predicado GROUP BY se enumeran en la columna Argument y las expresiones agregadas se enumeran en la columna Defined Values .In the SHOWPLAN_ALL statement or the graphical execution plan in SQL Server Management StudioSQL Server Management Studio, the columns in the GROUP BY predicate are listed in the Argument column, and the aggregate expressions are listed in the Defined Values column. Stream Aggregate es un operador físico.Stream Aggregate is a physical operator.
Icono del operador SwitchSwitch operator icon SwitchSwitch Switch es un tipo especial de iterador de concatenación que tiene n entradas.Switch is a special type of concatenation iterator that has n inputs. A cada operador Switch se asocia una expresión.An expression is associated with each Switch operator. Dependiendo del valor devuelto de la expresión (entre 0 y n-1), Switch copia el flujo de entrada correspondiente en el flujo de salida.Depending on the return value of the expression (between 0 and n-1), Switch copies the appropriate input stream to the output stream. Un uso de Switch consiste en implementar planes de consulta en los que participan cursores de avance rápido con determinados operadores, como el operador TOP .One use of Switch is to implement query plans involving fast forward cursors with certain operators such as the TOP operator. Switch es un operador lógico y físico.Switch is both a logical and physical operator.
Icono del operador Table DeleteTable delete operator icon Table DeleteTable Delete El operador físico Table Delete elimina filas de la tabla especificada en la columna Argument del plan de ejecución de consulta.The Table Delete physical operator deletes rows from the table specified in the Argument column of the query execution plan.
Icono del operador Table InsertTable insert operator icon Table InsertTable Insert El operador Table Insert inserta filas de su entrada en la tabla especificada en la columna Argument del plan de ejecución de consulta.The Table Insert operator inserts rows from its input into the table specified in the Argument column of the query execution plan. La columna Argument también contiene un predicado SET:(), que indica el valor en el que se establece cada columna.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Si Table Insert no tiene elementos secundarios para los valores de inserción, se obtendrá la fila insertada del propio operador Insert.If Table Insert has no children for insert values, then the row inserted is taken from the Insert operator itself. Table Insert es un operador físico.Table Insert is a physical operator.
Operador Table MergeTable merge operator Table MergeTable Merge El operador Table Merge aplica un flujo de datos de mezcla a un montón.The Table Merge operator applies a merge data stream to a heap. El operador elimina, actualiza o inserta filas en la tabla especificada en la columna Argument del operador.The operator deletes, updates, or inserts rows in the table specified in the Argument column of the operator. La operación real que se ejecuta depende del valor de tiempo de ejecución de la columna ACTION especificada en la columna Argument del operador.The actual operation performed depends on the run-time value of the ACTION column specified in the Argument column of the operator. Table Merge es un operador físico.Table Merge is a physical operator.
Icono del operador Table ScanTable scan operator icon Table ScanTable Scan El operador Table Scan recupera todas las filas de la tabla especificada en la columna Argument del plan de ejecución de consulta.The Table Scan operator retrieves all rows from the table specified in the Argument column of the query execution plan. Si hay un predicado WHERE:() en la columna Argument , solo se devuelven las filas que cumplan el predicado.If a WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Table Scan es un operador lógico y físico.Table Scan is a logical and physical operator.
Icono del operador Table SpoolTable spool operator icon Table SpoolTable Spool El operador Table Spool recorre la entrada y coloca una copia de cada fila en una tabla de cola oculta almacenada en la base de datos tempdb y que solo existe durante la duración de la consulta.The Table Spool operator scans the input and places a copy of each row in a hidden spool table that is stored in the tempdb database and existing only for the lifetime of the query. Si se hace retroceder el operador (por ejemplo, con un operador Nested Loops ) pero no es necesario volver a enlazar, se usan los datos de la cola en lugar de volver a examinar la entrada.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Table Spool es un operador físico.Table Spool is a physical operator.
Icono del operador Table SpoolTable spool operator icon Window SpoolWindow Spool El operador Window Spool expande cada fila del conjunto de filas que representa la ventana asociada con él.The Window Spool operator expands each row into the set of rows that represents the window associated with it. En una consulta, la cláusula OVER define la ventana de un conjunto de resultados de la consulta y, a continuación, una función de ventana calcula un valor para cada fila de la ventana.In a query, the OVER clause defines the window within a query result set and a window function then computes a value for each row in the window. Window Spool es un operador lógico y físico.Window Spool is a logical and physical operator.
Icono del operador Table UpdateTable update operator icon Table UpdateTable Update El operador físico Table Update actualiza las filas de entrada de la tabla especificada en la columna Argument del plan de ejecución de consulta.The Table Update physical operator updates input rows in the table specified in the Argument column of the query execution plan. El predicado SET:() determina el valor de cada columna actualizada.The SET:() predicate determines the value of each updated column. Se puede hacer referencia a estos valores en la cláusula SET o en cualquier parte del operador, y en cualquier parte de esta consulta.These values may be referenced in the SET clause or elsewhere within this operator as well as elsewhere within this query.
Icono del operador Table-valued FunctionTable-valued function operator icon Table-valued FunctionTable-valued Function El operador Table-valued Function evalúa una función con valores de tabla ( Transact-SQLTransact-SQL o CLR) y almacena las filas resultantes en la base de datos tempdb .The Table-valued Function operator evaluates a table-valued function (either Transact-SQLTransact-SQL or CLR), and stores the resulting rows in the tempdb database. Cuando los iteradores principales solicitan las filas, Table-valued Function devuelve las filas desde tempdb.When the parent iterators request the rows, Table-valued Function returns the rows from tempdb.

Las consultas con llamadas a funciones con valores de tablas generan planes de consultas con el iterador de la Table-valued Function .Queries with calls to table-valued functions generate query plans with the Table-valued Function iterator. Table-valued Function se puede evaluar con valores de parámetro diferentes:Table-valued Function can be evaluated with different parameter values:

-
Table-valued Function XML Reader escribe un BLOB XML como parámetro y genera un conjunto de filas que representa los nodos XML en el orden del documento XML.Table-valued Function XML Reader inputs an XML BLOB as a parameter and produces a rowset representing XML nodes in XML document order. Otros parámetros de entrada pueden restringir los nodos XML devueltos a un subconjunto del documento XML.Other input parameters may restrict XML nodes returned to a subset of XML document.

-Table Valued Function XML Reader with XPath filter es un tipo especial de XML Reader Table-valued Function que restringe la salida a los nodos XML que satisfacen una expresión XPath.-Table Valued Function XML Reader with XPath filter is a special type of XML Reader Table-valued Function that restricts output to XML nodes satisfying an XPath expression.

Table-valued Function es un operador lógico y físico.Table-valued Function is a logical and physical operator.
NoneNone Top N SortTop N Sort Top N Sort es parecido al iterador Sort , excepto en que solo se necesitan las primeras N líneas, no todo el conjunto de resultados.Top N Sort is similar to the Sort iterator, except that only the first N rows are needed, and not the entire result set. Para valores pequeños de N, el motor de ejecución de consultas de SQL ServerSQL Server intenta realizar toda la operación de ordenación en memoria.For small values of N, the SQL ServerSQL Server query execution engine attempts to perform the entire sort operation in memory. Para valores grandes de N, el motor de ejecución de consultas recurre al método más genérico de ordenación, en el que N no es un parámetro.For large values of N, the query execution engine resorts to the more generic method of sorting to which N is not a parameter.
Icono del operador TopTop operator icon TopTop El operador Top recorre la entrada y solo devuelve el primer número o porcentaje especificado de filas, basándose en un criterio de ordenación si es posible.The Top operator scans the input, returning only the first specified number or percent of rows, possibly based on a sort order. Opcionalmente, la columna Argument puede contener una lista de las columnas en las que se comprueban los valores equivalentes.The Argument column can contain a list of the columns that are being checked for ties. En los planes de actualización, se usa el operador Top para aplicar límites de recuento de filas.In update plans, the Top operator is used to enforce row count limits. Top es un operador lógico y físico.Top is a logical and physical operator.
Icono del operador extendido (UDX)Extended operator (UDX) icon UDXUDX Los operadores extendidos (UDX) implementan una de las múltiples operaciones XQuery y XPath de SQL ServerSQL Server.Extended Operators (UDX) implement one of many XQuery and XPath operations in SQL ServerSQL Server. Todos los operadores UDX son operadores lógicos y físicos.All UDX operators are both logical and physical operators.

El operador extendido (UDX) FOR XML sirve para serializar el conjunto de filas relacional que introduce en la representación XML en una única columna BLOB de una única fila de salida.Extended operator (UDX) FOR XML is used to serialize the relational row set it inputs into XML representation in a single BLOB column in a single output row. Es un operador de agregado XML que depende del orden.It is an order sensitive XML aggregation operator.

El operador extendido (UDX) XML SERIALIZER es un operador de agregado XML que depende del orden.Extended operator (UDX) XML SERIALIZER is an order sensitive XML aggregation operator. Especifica filas que representan nodos XML o valores escalares de XQuery en el orden del documento XML y produce un objeto BLOB XML serializado en una única columna XML de una única fila de salida.It inputs rows representing XML nodes or XQuery scalars in XML document order and produces a serialized XML BLOB in a single XML column in a single output row.

El operador extendido (UDX) XML FRAGMENT SERIALIZER es un tipo especial de XML SERIALIZER que se usa para procesar filas de entrada que representan fragmentos XML que se insertan en la extensión de modificación de datos de inserción XQuery.Extended operator (UDX) XML FRAGMENT SERIALIZER is a special type of XML SERIALIZER that is used for processing input rows representing XML fragments being inserted in XQuery insert data modification extension.

El operador extendido (UDX) XQUERY STRING evalúa el valor de cadena XQuery de las filas de entrada que representan nodos XML.Extended operator (UDX) XQUERY STRING evaluates the XQuery string value of input rows representing XML nodes. Es un operador de agregado de cadena que depende del orden.It is an order sensitive string aggregation operator. Produce una fila con columnas que representa el valor escalar de XQuery que contiene el valor de cadena de la entrada.It outputs one row with columns representing the XQuery scalar that contains string value of the input.

El operador extendido (UDX) XQUERY LIST DECOMPOSER es un operador de descomposición de lista XQuery.Extended operator (UDX) XQUERY LIST DECOMPOSER is an XQuery list decomposition operator. Para cada fila de entrada que representa un nodo XML, produce una o varias filas, cada una de las cuales representa un valor escalar de XQuery que contiene un valor de elemento de lista si la entrada es de tipo lista XSD.For each input row representing an XML node it produces one or more rows each representing XQuery scalar containing a list element value if the input is of XSD list type.

El operador extendido (UDX) XQUERY DATA evalúa la función XQuery fn:data() en la entrada que representa nodos XML.Extended operator (UDX) XQUERY DATA evaluates the XQuery fn:data() function on input representing XML nodes. Es un operador de agregado de cadena que depende del orden.It is an order sensitive string aggregation operator. Genera una fila con columnas que representa el valor escalar de XQuery que contiene el resultado de fn:data() .It outputs one row with columns representing XQuery scalar that contains the result of fn:data().

El operador extendido XQUERY CONTAINS evalúa la función XQuery fn:contains() en la entrada que representa nodos XML.Extended operator XQUERY CONTAINS evaluates the XQuery fn:contains() function on input representing XML nodes. Es un operador de agregado de cadena que depende del orden.It is an order sensitive string aggregation operator. Genera una fila con columnas que representa el valor escalar de XQuery que contiene el resultado de fn:contains() .It outputs one row with columns representing XQuery scalar that contains the result of fn:contains().

El operador extendido UPDATE XML NODE actualiza el nodo XML en la extensión de modificación de datos de reemplazo XQuery del método modify() en el tipo XML.Extended operator UPDATE XML NODE updates XML node in the XQuery replace data modification extension in the modify() method on XML type.
NoneNone UnionUnion El operador Union recorre varias entradas, obtiene cada fila recorrida y quita los duplicados.The Union operator scans multiple inputs, outputting each row scanned and removing duplicates. Union es un operador lógico.Union is a logical operator.
Icono del operador Update (motor de base de datos)Update (Database Engine) operator icon UpdateUpdate El operador lógico Update actualiza cada fila a partir de su entrada en el objeto especificado en la columna Argument del plan de ejecución de consulta.The Update operator updates each row from its input in the object specified in the Argument column of the query execution plan. Update es un operador lógico.Update is a logical operator. El operador físico es Table Update, Index Updateo Clustered Index Update.The physical operator is Table Update, Index Update, or Clustered Index Update.
Icono del elemento del lenguaje WhileWhile language element icon WhileWhile El operador While implementa el bucle while de Transact-SQLTransact-SQL .The While operator implements the Transact-SQLTransact-SQL while loop. While es un elemento del lenguajeWhile is a language element