Referência de operadores físicos e lógicos de plano de execuçãoShowplan Logical and Physical Operators Reference

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Os operadores descrevem como o SQL ServerSQL Server executa uma consulta ou uma instrução DML (Linguagem de Manipulação de Dados).Operators describe how SQL ServerSQL Server executes a query or a Data Manipulation Language (DML) statement. O otimizador de consultas usa os operadores para criar um plano de consulta a fim de criar o resultado especificado na consulta ou para executar a operação especificada na instrução 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. O plano de consulta é uma árvore que consiste em operadores físicos.The query plan is a tree consisting of physical operators. Você pode exibir o plano de consulta usando as instruções SET SHOWPLAN, as opções de plano de execução gráfica no SQL Server Management StudioSQL Server Management Studioou as classes de evento do Plano de Execução do 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.

Os operadores são classificados como lógicos e físicos.Operators are classified as logical and physical operators.

Operadores lógicosLogical Operators
Os operadores lógicos descrevem a operação algébrica relacional usada para processar uma instrução.Logical operators describe the relational algebraic operation used to process a statement. Em outras palavras, operadores lógicos descrevem conceitualmente qual operação precisa ser executada.In other words, logical operators describe conceptually what operation needs to be performed.

Operadores físicosPhysical Operators
Os operadores físicos implementam a operação descrita pelos operadores lógicos.Physical operators implement the operation described by logical operators. Cada operador físico é um objeto ou uma rotina que executa uma operação.Each physical operator is an object or routine that performs an operation. Por exemplo, alguns operadores físicos acessam colunas ou linhas de uma tabela, índice ou exibição.For example, some physical operators access columns or rows from a table, index or view. Outros operadores físicos executam outras operações como cálculos, agregações, verificações da integridade de dados ou junções.Other physical operators perform other operations such as calculations, aggregations, data integrity checks or joins. Os operadores físicos possuem custos associados.Physical operators have costs associated with them.

Os operadores físicos iniciam, coletam dados e fecham.The physical operators initialize, collect data, and close. Especificamente, o operador físico pode responder às três chamadas de método abaixo:Specifically, the physical operator can answer the following three method calls:

  • Init() : o método Init() faz com que um operador físico se inicialize e define quaisquer estruturas de dados necessárias.Init(): The Init() method causes a physical operator to initialize itself and set up any required data structures. O operador físico pode receber muitas chamadas Init() ; entretanto, um operador físico costuma receber somente uma.The physical operator may receive many Init() calls, though typically a physical operator receives only one.

  • GetNext() : o método GetNext() faz um operador físico obter a primeira linha de dados ou a subsequente.GetNext(): The GetNext() method causes a physical operator to get the first, or subsequent row of data. O operador físico pode receber zero ou muitas chamadas GetNext() .The physical operator may receive zero or many GetNext() calls.

  • Close() : o método Close() faz um operador físico executar algumas operações de limpeza total e se desligar.Close(): The Close() method causes a physical operator to perform some clean-up operations and shut itself down. Um operador físico só recebe uma chamada Close() .A physical operator only receives one Close() call.

O método GetNext() retorna uma linha de dados e o número de vezes em que é chamado aparece como ActualRows na saída do Plano de Execução que é produzida usando as opções SET STATISTICS PROFILE ON ou 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 obter mais informações sobre essas opções SET, veja SET STATISTICS PROFILE (Transact-SQL) e SET STATISTICS XML (Transact-SQL).For more information about these SET options, see SET STATISTICS PROFILE (Transact-SQL) and SET STATISTICS XML (Transact-SQL).

Os contadores ActualRebinds e ActualRewinds exibidos na saída do Plano de Execução referem-se ao número de vezes que o método Init() é chamado.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 um operador esteja no lado interno de uma junção de loop, ActualRebinds será igual a um e ActualRewinds será igual a zero.Unless an operator is on the inner side of a loop join, ActualRebinds equals one and ActualRewinds equals zero. Se um operador estiver no lado interno de uma junção de loop, a soma do número de reassociações e retrocessos deve ser igual ao número de linhas processadas no lado externo da junção.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. Uma reassociação significa que um ou mais dos parâmetros correlatos da junção se alterou e o lado interno deve ser reavaliado.A rebind means that one or more of the correlated parameters of the join changed and the inner side must be reevaluated. Um retrocesso significa que nenhum dos parâmetros correlatos se alterou e o conjunto de resultados interno anterior pode ser usado novamente.A rewind means that none of the correlated parameters changed and the prior inner result set may be reused.

ActualRebinds e ActualRewinds estão presentes na saída do Plano de Execução XML produzida usando a opção SET STATISTICS XML ON.ActualRebinds and ActualRewinds are present in XML Showplan output produced by using SET STATISTICS XML ON. Eles só são populados para os operadores Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spoole 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 e ActualRewinds também podem ser populados para os operadores Assert e Filter quando o atributo StartupExpression é definido como TRUE.ActualRebinds and ActualRewinds may also be populated for the Assert and Filter operators when the StartupExpression attribute is set to TRUE.

Quando ActualRebinds e ActualRewinds estiverem presentes em um Plano de Execução XML, serão comparáveis a EstimateRebinds e EstimateRewinds.When ActualRebinds and ActualRewinds are present in an XML Showplan, they are comparable to EstimateRebinds and EstimateRewinds. Quando estiverem ausentes, o número estimado de linhas (EstimateRows) será comparável ao número de linhas real (ActualRows).When they are absent, the estimated number of rows (EstimateRows) is comparable to the actual number of rows (ActualRows). Observe que a saída gráfica real do Plano de Execução exibe zeros para reassociações e retrocessos reais quando eles estão ausentes.Note that actual graphical Showplan output displays zeros for the actual rebinds and actual rewinds when they are absent.

Um contador relacionado, ActualEndOfScans, só está disponível quando a saída do Plano de Execução é produzida usando a opção SET STATISTICS XML ON.A related counter, ActualEndOfScans, is available only when Showplan output is produced by using SET STATISTICS XML ON. Sempre que um operador físico chega ao término de seu fluxo de dados, esse contador é incrementado em um.Whenever a physical operator reaches the end of its data stream, this counter is incremented by one. Um operador físico pode chegar ao término de seu fluxo de dados zero, uma ou mais vezes.A physical operator can reach the end of its data stream zero, one, or multiple times. Como com as reassociações e os retrocessos, o número de término de exames só poderá ser superior a um se o operador estiver no lado interno de uma junção de loop.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. O número de término de exames deveria ser inferior ou igual à soma do número de reassociações e retrocessos.The number of end of scans should be less than or equal to the sum of the number of rebinds and rewinds.

Mapeando operadores físicos e lógicosMapping Physical and Logical Operators

O otimizador de consulta cria um plano de consulta como uma árvore que consiste em operadores lógicos.The query optimizer creates a query plan as a tree consisting of logical operators. Depois de criar o plano, o otimizador de consulta escolhe o operador físico mais eficiente 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. O otimizador de consulta usa uma abordagem baseada em custos para determinar qual operador físico implementará um operador lógico.The query optimizer uses a cost-based approach to determine which physical operator will implement a logical operator.

Normalmente, uma operação lógica pode ser implementada por diversos operadores físicos.Usually, a logical operation can be implemented by multiple physical operators. Em alguns casos raros, porém, um operador físico também pode implementar diversas operações lógicas.However, in rare cases, a physical operator can implement multiple logical operations as well.

Descrições dos operadoresOperator Descriptions

Esta seção contém descrições dos operadores lógicos e físicos.This section contains descriptions of the logical and physical operators.

Ícone do plano de execução gráficaGraphical Execution Plan Icon Operador de plano de execuçãoShowplan Operator DescriçãoDescription
Ícone do operador Adaptive JoinAdaptive Join operator icon Junção AdaptávelAdaptive Join O operador de Junção Adaptável habilita que as opções de método de junção hash ou de junção de loop aninhado sejam adiadas até após a verificação da primeira 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. O operador de Junção Adaptável é um operador físico.The Adaptive Join operator is a physical operator. Para obter mais informações, confira Noções básicas sobre junções adaptáveis.For more information, see Understanding Adaptive joins.
NoneNone AgregadoAggregate O operador Aggregate calcula uma expressão que contém MIN, MAX, SUM, COUNT ou AVG.The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG. O operador Aggregate pode ser um operador lógico ou um operador físico.The Aggregate operator can be a logical operator or a physical operator.
Ícone do operador Arithmetic expressionArithmetic expression operator icon Arithmetic ExpressionArithmetic Expression O operador Arithmetic Expression computa um valor novo de valores existentes em uma linha.The Arithmetic Expression operator computes a new value from existing values in a row. Expressão Aritmética não é usada no SQL ServerSQL Server.Arithmetic Expression is not used in SQL ServerSQL Server.
NoneNone Async ConcatAsync Concat O operador Async Concat só é usado em consultas remotas (consultas distribuídas).The Async Concat operator is used only in remote queries (distributed queries). Ele tem n filhos e um nó pai.It has n children and one parent node. Normalmente, alguns dos filhos são computadores remotos que participam de uma consulta distribuída.Usually, some of the children are remote computers that participate in a distributed query. O Async Concat emite open() chamadas simultaneamente a todos os filhos e aplica um bitmap para cada filho.Async Concat issues open() calls to all of the children simultaneously and then applies a bitmap to each child. Para cada bit que é um 1, Async Concat envia linhas de saída para o nó pai sob demanda.For each bit that is a 1, Async Concat sends the output rows to the parent node on demand.
Ícone do operador AssertAssert operator icon AssertAssert O operador Assert verifica uma condição.The Assert operator verifies a condition. Por exemplo, ele valida integridade referencial ou assegura que uma subconsulta escalar retorne uma linha.For example, it validates referential integrity or ensures that a scalar subquery returns one row. Para cada linha de entrada, o operador Assert avalia a expressão na coluna Argumento do plano de execução.For each input row, the Assert operator evaluates the expression in the Argument column of the execution plan. Se essa expressão for avaliada como NULL, a linha será passada pelo operador Assert e a execução de consulta continuará.If this expression evaluates to NULL, the row is passed through the Assert operator and the query execution continues. Se essa expressão for avaliada como um valor não nulo, será gerado um erro apropriado.If this expression evaluates to a nonnull value, the appropriate error will be raised. O operador Assert é um operador físico.The Assert operator is a physical operator.
Ícone do elemento de linguagem AssignAssign language element icon AssignAssign O operador Assign atribui o valor de uma expressão ou constante a um variável.The Assign operator assigns the value of an expression or a constant to a variable. Assign é um elemento de linguagem.Assign is a language element.
Ícone do operador BitmapBitmap operator icon Bitmap CreateBitmap Create O operador Bitmap Create aparece na saída do plano de execução onde os bitmaps são criados.The Bitmap Create operator appears in the Showplan output where bitmaps are built. Bitmap Create é um operador lógico.Bitmap Create is a logical operator.
Ícone do operador BitmapBitmap operator icon BitmapBitmap SQL ServerSQL Server usa o operador Bitmap para implementar filtro de bitmap em planos de consulta paralelos.uses the Bitmap operator to implement bitmap filtering in parallel query plans. O filtro de bitmap acelera a execução de consulta eliminando linhas com valores de chave que não podem produzir nenhum relatório de junção antes de transmitir as linhas por outro operador como o 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. Um filtro de bitmap usa uma representação compacta de um conjunto de valores de uma tabela em uma parte da árvore de operador de uma segunda tabela em outra parte da árvore.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. Com a remoção de linhas desnecessárias previamente na consulta, os operadores subsequentes têm menos linhas para trabalhar e o desempenho geral da consulta melhora.By removing unnecessary rows early in the query, subsequent operators have fewer rows to work with, and the overall performance of the query improves. O otimizador de consulta determina quando um bitmap é seletivo o bastante para ser útil e em quais operadores o filtro é aplicado.The optimizer determines when a bitmap is selective enough to be useful and in which operators to apply the filter. Bitmap é um operador físico.Bitmap is a physical operator.
Ícone do operador Bookmark lookupBookmark lookup operator icon Bookmark LookupBookmark Lookup O operador Bookmark Lookup usa um indicador (ID da fila ou chave de clustering) para pesquisar a linha correspondente na tabela ou índice clusterizado.The Bookmark Lookup operator uses a bookmark (row ID or clustering key) to look up the corresponding row in the table or clustered index. A coluna Argument contém o rótulo do indicador usado para procurar a linha na tabela ou índice clusterizado.The Argument column contains the bookmark label used to look up the row in the table or clustered index. A coluna Argument também contém o nome da tabela ou índice clusterizado no qual a linha é procurada.The Argument column also contains the name of the table or clustered index in which the row is looked up. Se a cláusula WITH PREFETCH aparecer na coluna Argument , o processador de consulta determinará que convém usar a pré-busca assíncrona (read-ahead) ao procurar indicadores na tabela ou índice clusterizado.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.

Começando pelo SQL Server 2005 (9.x)SQL Server 2005 (9.x), o Bookmark Lookup não é usado.Starting with SQL Server 2005 (9.x)SQL Server 2005 (9.x), Bookmark Lookup is not used. Em vez disso, Key Lookup e RID Lookup fornecem funcionalidade de pesquisa de indicador.Instead, Key Lookup and RID Lookup provide bookmark lookup functionality.
NoneNone Branch RepartitionBranch Repartition Às vezes, em um plano de consulta paralelo, há regiões conceituais de iteradores.In a parallel query plan, sometimes there are conceptual regions of iterators. Todos os iteradores dentro de tal região podem ser executados por threads paralelos.All of the iterators within such a region can be executed by parallel threads. As próprias regiões devem ser executadas em série.The regions themselves must be executed serially. Alguns dos iteradores Parallelism em uma região individual são chamados Branch Repartition.Some of the Parallelism iterators within an individual region are called Branch Repartition. O iterador Parallelism no limite dessas duas regiões é chamado Segment Repartition.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch Repartition e Segment Repartition são operadores lógicos.Branch Repartition and Segment Repartition are logical operators.
NoneNone BroadcastBroadcast Broadcast tem um nó filho e n nós pai.Broadcast has one child node and n parent nodes. Broadcast envia suas linhas de entrada para vários consumidores sob demanda.Broadcast sends its input rows to multiple consumers on demand. Cada consumidor adquire todas as linhas.Each consumer gets all of the rows. Por exemplo, se todos os consumidores representarem lados de criação de uma junção hash, então serão criadas n cópias das tabelas de 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.
Ícone do operador Build hashBuild hash operator icon Build HashBuild Hash Indica a criação de uma tabela de hash de lote para um índice columnstore xVelocity de memória otimizada.Indicates the build of a batch hash table for an xVelocity memory optimized columnstore index.
NoneNone CacheCache OCache é uma versão especializada do operador Spool .Cache is a specialized version of the Spool operator. Ele armazena somente uma linha de dados.It stores only one row of data. OCache é um operador lógico.Cache is a logical operator. OCache não é usado no SQL ServerSQL Server.Cache is not used in SQL ServerSQL Server.
Ícone do operador Clustered index deleteClustered index delete operator icon Clustered Index DeleteClustered Index Delete O operador Clustered Index Delete exclui linhas do índice clusterizado especificado na coluna Argumento do plano de execução da consulta.The Clustered Index Delete operator deletes rows from the clustered index specified in the Argument column of the query execution plan. Se um predicado WHERE:() estiver presente na coluna Argument, somente as linhas que atenderem ao predicado serão excluídas.Clustered Index Delete é um 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.
Ícone do operador Clustered index insertClustered index insert operator icon Clustered Index InsertClustered Index Insert O operador de plano de execução Clustered Index Insert insere linhas de sua entrada no índice clusterizado especificado na coluna Argument.The Clustered Index Insert Showplan operator inserts rows from its input into the clustered index specified in the Argument column. A coluna Argument também contém um predicado SET:(), que indica o valor para o qual cada coluna está definida.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Se Clustered Index Insert não tiver nenhum filho para valores de inserção, a linha inserida será extraída do próprio operador Insert .Clustered Index Insert é um 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 Clustered index mergeClustered index merge operator Clustered Index MergeClustered Index Merge O operador Clustered Index Merge aplica um fluxo de mesclagem de dados a um índice clusterizado.The Clustered Index Merge operator applies a merge data stream to a clustered index. O operador exclui, atualiza ou insere linhas do índice clusterizado especificado na coluna Argument do operador.The operator deletes, updates, or inserts rows from the clustered index specified in the Argument column of the operator. A operação real executada depende do valor de runtime da coluna ACTION especificada na coluna Argument do 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 é um operador físico.Clustered Index Merge is a physical operator.
Ícone do operador Clustered index scanClustered index scan operator icon Clustered Index ScanClustered Index Scan O operador Clustered Index Scan examina as linhas do índice clusterizado especificado na coluna Argument do plano de execução da consulta.The Clustered Index Scan operator scans the clustered index specified in the Argument column of the query execution plan. Quando houver um predicado opcional WHERE:(), somente as linhas que atenderem ao predicado serão retornadas.When an optional WHERE:() predicate is present, only those rows that satisfy the predicate are returned. Se a coluna Argument apresentar a cláusula ORDERED, o processador de consulta solicitou que a saída das linhas seja retornada na ordem em que o índice clusterizado as classificou.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. Se a cláusula ORDERED não estiver presente, o mecanismo de armazenamento examinará o índice em modo ótimo, sem necessariamente classificar a saída.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 é um operador lógico e físico.Clustered Index Scan is a logical and physical operator.
Ícone do operador Clustered index seekClustered index seek operator icon Clustered Index SeekClustered Index Seek O operador Clustered Index Seek usa a habilidade de busca de índices para recuperar linhas de um índice cluster.The Clustered Index Seek operator uses the seeking ability of indexes to retrieve rows from a clustered index. A coluna Argument contém o nome do índice clusterizado que está sendo usado e o predicado SEEK:().The Argument column contains the name of the clustered index being used and the SEEK:() predicate. O mecanismo de armazenamento usa o índice para processar somente as linhas que satisfazem esse predicado SEEK:().The storage engine uses the index to process only those rows that satisfy this SEEK:() predicate. Ele pode incluir também um predicado WHERE:(), onde o mecanismo de armazenamento avaliará em relação a todas as linhas que satisfizerem o predicado SEEK:(), mas isso é opcional e não usa índices para executar esse processo.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.

Se a coluna Argumento contiver a cláusula ORDERED, o processador de consulta determinou que as linhas fossem retornadas na ordem em que o índice clusterizado as classificou.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. Se a cláusula ORDERED não estiver presente, o mecanismo de armazenamento pesquisará o índice em modo ótimo, sem necessariamente classificar a saída.If the ORDERED clause is not present, the storage engine searches the index in the optimal way, without necessarily sorting the output. Permitir que a saída retenha sua ordenação pode ser menos eficiente do que produzir saída não classificada.Allowing the output to retain its ordering can be less efficient than producing nonsorted output. Quando a palavra-chave LOOKUP aparecer, então uma consulta de marcador está sendo executada.When the keyword LOOKUP appears, then a bookmark lookup is being performed. No SQL Server 2008SQL Server 2008 e em versões posteriores, o operador Key Lookup fornece a funcionalidade de consulta de marcador.In SQL Server 2008SQL Server 2008 and later versions, the Key Lookup operator provides bookmark lookup functionality. Clustered Index Seek é um operador lógico e físico.Clustered Index Seek is a logical and physical operator.
Ícone do operador Clustered index updateClustered index update operator icon Clustered Index UpdateClustered Index Update O operador Clustered Index Update atualiza as linhas de entrada no índice clusterizado especificado na coluna Argument . Se um predicado WHERE:() estiver presente, somente as linhas que satisfazem esse predicado serão atualizadas.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. Se um predicado SET:() estiver presente, cada coluna atualizada será definida com esse valor.If a SET:() predicate is present, each updated column is set to this value. Se um predicado DEFINE: () está presente, serão listados os valores que esse operador definir.If a DEFINE:() predicate is present, the values that this operator defines are listed. Esses valores podem ser referenciados na cláusula SET ou em outro lugar dentro desse operador e em outro lugar dentro dessa consulta.These values may be referenced in the SET clause or elsewhere within this operator and elsewhere within this query. Clustered Index Update é um operador lógico e físico.Clustered Index Update is a logical and physical operator.
Ícone do operador CollapseCollapse operator icon RecolherCollapse O operador Collapse otimiza processamento de atualização.The Collapse operator optimizes update processing. Quando uma atualização é executada, ela pode ser dividida (usando o operador Split ) em uma exclusão e uma entrada.When an update is performed, it can be split (using the Split operator) into a delete and an insert. A coluna Argument contém uma cláusula GROUP BY:() que especifica uma lista de colunas de chave.The Argument column contains a GROUP BY:() clause that specifies a list of key columns. Se o processador de consultas encontrar linhas adjacentes que incluem e inserem os mesmos valores de chave, ele substituirá essas operações separadas por uma operação de atualização única e mais eficiente.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 é um operador lógico e físico.Collapse is a logical and physical operator.
Verificação de Índice ColumnstoreColumnstore Index Scan Verificação de Índice ColumnstoreColumnstore Index Scan O operador Columnstore Index Scan examina o índice columnstore especificado na coluna Argument do plano de execução da consulta.The Columnstore Index Scan operator scans the columnstore index specified in the Argument column of the query execution plan.
Ícone do operador Compute scalarCompute scalar operator icon Compute ScalarCompute Scalar O operador Compute Scalar avalia uma expressão para produzir um valor escalar computado.The Compute Scalar operator evaluates an expression to produce a computed scalar value. Isso pode ser retornado ao usuário, ter referência em outro lugar na consulta, ou ambos.This may then be returned to the user, referenced elsewhere in the query, or both. Um exemplo de ambos está em um predicado de filtro ou predicado de junção.An example of both is in a filter predicate or join predicate. OCompute Scalar é um operador lógico e físico.Compute Scalar is a logical and physical operator.

OperadoresCompute Escalar que aparecem em planos de execução gerados por SET STATISTICS XML podem não conter o elemento RunTimeInformation .Compute Scalar operators that appear in Showplans generated by SET STATISTICS XML might not contain the RunTimeInformation element. Em planos de execução gráficos, Linhas Reais, Religações Reaise Retrocessos Reais podem estar ausentes na janela Propriedades quando a opção Incluir Plano de Execução Real estiver selecionada em 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. Quando isto acontece, significa que, embora os operadores tenham sido usados no plano de consulta compilado, o trabalho foi executado por outros operadores no plano de consulta de tempo de execução.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. Observe também que o número de execuções na saída de plano de execução gerada por SET STATISTICS PROFILE é equivalente à soma de reassociações e retrocessos em planos de execução gerados 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.
Ícone do operador ConcatenationConcatenation operator icon ConcatenationConcatenation O operador Concatenation verifica várias entradas, retornando cada linha verificada.The Concatenation operator scans multiple inputs, returning each row scanned. Concatenation normalmente é usado para implementar a construção UNION ALL Transact-SQLTransact-SQL .Concatenation is typically used to implement the Transact-SQLTransact-SQL UNION ALL construct. O operador físico Concatenation tem duas ou mais entradas e uma saída.The Concatenation physical operator has two or more inputs and one output. Concatenation copia linhas do primeiro fluxo de entrada ao fluxo de saída e repete essa operação para cada fluxo 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 é um operador lógico e físico.Concatenation is a logical and physical operator.
Ícone do operador Constant scanConstant scan operator icon Constant ScanConstant Scan O operador Constant Scan introduz uma ou mais linhas constantes em uma consulta.The Constant Scan operator introduces one or more constant rows into a query. Um operador Compute Scalar é frequentemente usado após uma Constant Scan para acrescentar colunas a uma linha produzida pelo operador Constant Scan .A Compute Scalar operator is often used after a Constant Scan to add columns to a row produced by the Constant Scan operator.
Ícone do elemento de linguagem Convert (mecanismo de banco de dados)Convert (Database Engine) language element icon ConverterConvert O operador Convert converte um tipo de dados escalar em outro.The Convert operator converts one scalar data type to another. Convert é um elemento de linguagem.Convert is a language element.
NoneNone Cross JoinCross Join O operador Cross Join une cada linha da primeira entrada (superior) a cada linha da 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 é um operador lógico.Cross Join is a logical operator.
NoneNone CursorCursor Os operadores lógicos e físicos Cursor são usados para descrever como é executada uma consulta ou atualização que envolva operações de cursor.The Cursor logical and physical operators are used to describe how a query or update involving cursor operations is executed. Os operadores físicos descrevem o algoritmo de implementação físico usado para processar o cursor; por exemplo, usando um cursor controlado por conjunto de chaves.The physical operators describe the physical implementation algorithm used to process the cursor; for example, using a keyset-driven cursor. Cada etapa na execução de um cursor envolve um operador físico.Each step in the execution of a cursor involves a physical operator. Os operadores lógicos descrevem uma propriedade do cursor, como quando o cursor é somente leitura.The logical operators describe a property of the cursor, such as the cursor is read only.

Operadores lógicos incluem Asynchronous, Optimistic, Primary, Read Only, Scroll Locks, Secondary e Synchronous.Logical operators include Asynchronous, Optimistic, Primary, Read Only, Scroll Locks, and Secondary and Synchronous.

Operadores físicos incluem Dynamic, Fetch Query, Keyset, Population Query, Refresh Query e Snapshot.Physical operators include Dynamic, Fetch Query, Keyset, Population Query, Refresh Query and Snapshot.
Ícone do operador de cursor Cursor catchallCursor catchall cursor operator icon catchallcatchall O ícone catchall é exibido quando a lógica que produz planos de execução gráficos não puder encontrar um ícone viável para o iterador.The catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical showplans. O ícone catchall não indica necessariamente uma condição de erro.The catchall icon does not necessarily indicate an error condition. Há três ícones catchall: azul (para iteradores), laranja (para cursores) e verde (para elementos de linguagem Transact-SQLTransact-SQL ).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language elements).
Ícone do elemento de linguagem DeclareDeclare language element icon DeclareDeclare O operador Declare aloca uma variável local no plano de consulta.The Declare operator allocates a local variable in the query plan. Declare é um elemento de linguagem.Declare is a language element.
Ícone do operador Delete (mecanismo de banco de dados)Delete (Database Engine) operator icon Delete (excluir)Delete O operador Delete efetua a exclusão em linhas de objeto que atendem ao predicado opcional na coluna Argumento .The Delete operator deletes from an object rows that satisfy the optional predicate in the Argument column.
Ícone do operador Delete scanDelete scan operator icon Deleted ScanDeleted Scan O operador Deleted Scan examina a tabela excluída em um gatilho.The Deleted Scan operator scans the deleted table within a trigger.
NoneNone Distinct SortDistinct Sort O operador lógico Distinct Sort verifica a entrada, removendo duplicatas e fazendo classificação pelas colunas especificadas no predicado DISTINCT ORDER BY:() da coluna 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 é um operador lógico.Distinct Sort is a logical operator.
NoneNone DistinctDistinct O operador Distinct remove duplicatas de um conjunto de linhas ou de uma coleção de valores.The Distinct operator removes duplicates from a rowset or from a collection of values. Distinct é um operador lógico.Distinct is a logical operator.
Ícone do operador de paralelismo Distribute streamsDistribute streams parallelism operator icon Distribute StreamsDistribute Streams O operador Distribute Streams só é usado em planos de consulta paralelos.The Distribute Streams operator is used only in parallel query plans. O operador Distribute Streams leva um fluxo de entrada simples de registros e produz fluxos de saída múltiplos.The Distribute Streams operator takes a single input stream of records and produces multiple output streams. O conteúdo do registro e o formato não são alterados.The record contents and format are not changed. Cada registro do fluxo de entrada aparece em um dos fluxos de saída.Each record from the input stream appears in one of the output streams. Este operador preserva automaticamente a ordem relativa dos registros de entrada nos fluxos de saída.This operator automatically preserves the relative order of the input records in the output streams. Normalmente, são usadas operações de hash para decidir a qual fluxo de saída pertence um determinado registro de entrada.Usually, hashing is used to decide to which output stream a particular input record belongs.

Se a saída for particionada, a coluna Argument conterá um predicado PARTITION COLUMNS:() e as colunas de particionamento.If the output is partitioned, then the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns. Distribute Streams é um operador lógicoDistribute Streams is a logical operator
Ícone do operador de cursor DynamicDynamic cursor operator icon DinâmicosDynamic O operador Dynamic usa um cursor que pode ver todas as alterações feitas por outros.The Dynamic operator uses a cursor that can see all changes made by others.
Ícone do operador de cursor Fetch queryFetch query cursor operator icon Fetch QueryFetch Query O operador Fetch Query recupera linhas quando é feita uma busca em um cursor.The Fetch Query operator retrieves rows when a fetch is issued against a cursor.
Ícone do operador Filter (mecanismo de banco de dados)Filter (Database Engine) operator icon FilterFilter O operador Filter examina a entrada, retornando apenas as linhas que satisfazem a expressão de filtro (predicado) que aparece na coluna 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 O operador lógico Flow Distinct examina a entrada, removendo duplicatas.The Flow Distinct logical operator scans the input, removing duplicates. Enquanto o operador Distinct consome toda a entrada antes de produzir qualquer saída, o operador FlowDistinct retorna cada linha como foi obtida da entrada (a menos que a fila seja uma duplicata: nesse caso ela é descartada).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).
Ícone do operador Foreign key references checkForeign key references check operator icon Verificação de Referências de Chave EstrangeiraForeign Key References Check O operador Verificação de Referências de Chave Estrangeira executa verificações de integridade referencial no local, comparando a linha modificada com as linhas nas tabelas de referência para verificar se a modificação não afetará a integridade 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. O operador Verificação de Referências de Chave Estrangeira é usado quando mais de 253 referências de chave estrangeira existem na mesma chave primária ou exclusiva.The Foreign Key References Check operator is used when more than 253 foreign key references exist on the same primary or unique key. Verificação de Referências de Chave Estrangeira é um operador lógico e físico.Foreign Key References Check is a logical and physical operator.
NoneNone Full Outer JoinFull Outer Join O operador lógico Full Outer Join retorna cada linha que satisfaz o predicado de junção da primeira entrada (parte superior) associada a cada linha da segunda entrada (parte 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. Ele também retorna linhas:It also returns rows from:

- Da primeira entrada que não teve nenhuma correspondência na segunda entrada.-The first input that had no matches in the second input.

- Da segunda entrada que não teve nenhuma correspondência na primeira entrada.-The second input that had no matches in the first input.

A entrada que não contém os valores correspondentes é retornada como um valor nulo.The input that does not contain the matching values is returned as a null value. Full Outer Join é um operador lógico.Full Outer Join is a logical operator.
Ícone do operador de paralelismo Gather streamsGather streams parallelism operator icon Gather StreamsGather Streams O operador Gather Streams só é usado em planos de consulta paralelos.The Gather Streams operator is only used in parallel query plans. O operador Gather Streams consome vários fluxos de entrada e produz um único fluxo de saída de registros ao combinar os fluxos de entrada.The Gather Streams operator consumes several input streams and produces a single output stream of records by combining the input streams. O conteúdo do registro e o formato não são alterados.The record contents and format are not changed. Se este operador for preservador da ordem, todos os fluxos de entrada deverão ser ordenados.If this operator is order preserving, all input streams must be ordered. Se a saída for ordenada, a coluna Argument conterá um predicado ORDER BY:() e os nomes das colunas que estão sendo ordenadas.If the output is ordered, the Argument column contains an ORDER BY:() predicate and the names of columns being ordered. Gather Streams é um operador lógico.Gather Streams is a logical operator.
Ícone do operador Hash matchHash match operator icon Hash MatchHash Match O operador Hash Match cria uma tabela de hash computando um valor de hash para cada linha da entrada criada.The Hash Match operator builds a hash table by computing a hash value for each row from its build input. Um predicado HASH:() com uma lista de colunas usadas para criar um valor de hash aparece na coluna Argument .A HASH:() predicate with a list of columns used to create a hash value appears in the Argument column. Então, para cada fila de sondagem (conforme aplicável), ela computa um valor de hash (usando a mesma função de hash) e procura correspondências na tabela de 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. Se um predicado residual estiver presente (identificado por RESIDUAL:() na coluna Argument ), esse predicado também deverá ser atendido para que as linhas sejam consideradas uma correspondência.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. O comportamento depende da operação lógica que está sendo executada:Behavior depends on the logical operation being performed:

- Para qualquer junção, use a primeira entrada (superior) para criar a tabela de hash e a segunda (inferior) para sondar a tabela de hash.-For any joins, use the first (top) input to build the hash table and the second (bottom) input to probe the hash table. As correspondências de saída (ou não correspondências) conforme determinadas pelo tipo de junção.Output matches (or nonmatches) as dictated by the join type. Se várias junções usam a mesma coluna de junção, essas operações serão agrupadas em uma equipe de hash.If multiple joins use the same join column, these operations are grouped into a hash team.

- Para os operadores distintos ou de agregação, use a entrada para criar a tabela de hash (removendo duplicatas e computando quaisquer expressões de agregação).-For the distinct or aggregate operators, use the input to build the hash table (removing duplicates and computing any aggregate expressions). Quando a tabela de hash for criada, verifique a tabela e saída de todas as entradas.When the hash table is built, scan the table and output all entries.

- Para o operador de união, use a primeira entrada para criar a tabela de hash (removendo duplicatas).-For the union operator, use the first input to build the hash table (removing duplicates). Use a segunda entrada (que não deve ter uma duplicata) para sondar a tabela de hash, retornando todas linhas sem correspondência e, então, verifique a tabela de hash e retorne todas as 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 é um operador físico.Hash Match is a physical operator. Para obter mais informações, confira Noções básicas sobre junções hash.For more information, see Understanding Hash joins.
Ícone do elemento de linguagem IfIf language element icon SeIf O operador If executa processamento condicional com base em uma expressão.The If operator carries out conditional processing based on an expression. If é um elemento de linguagem.If is a language element.
NoneNone Inner JoinInner Join O operador lógico Inner Join retorna cada linha que satisfaz a junção da primeira entrada (superior) com a 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.
Ícone do operador Insert (mecanismo de banco de dados)Insert (Database Engine) operator icon InsertInsert O operador lógico Insert insere cada linha de sua entrada no objeto especificado na coluna Argument .The Insert logical operator inserts each row from its input into the object specified in the Argument column. O operador físico é o operador Table Insert, Index Insertou Clustered Index Insert .The physical operator is either the Table Insert, Index Insert, or Clustered Index Insert operator.
Ícone do operador Inserted scanInserted scan operator icon Inserted ScanInserted Scan O operador Inserted Scan verifica a tabela inserida .The Inserted Scan operator scans the inserted table. OInserted Scan é um operador lógico e físico.Inserted Scan is a logical and physical operator.
Ícone do elemento de linguagem IntrinsicIntrinsic language element icon IntrinsicIntrinsic O operador Intrinsic invoca uma função Transact-SQLTransact-SQL interna.The Intrinsic operator invokes an internal Transact-SQLTransact-SQL function. Intrinsic é um elemento de linguagem.Intrinsic is a language element.
Ícone do operador Iterator catchallIterator catchall operator icon IteradorIterator O ícone catchall Iterator é exibido quando um ícone adequado para o iterador não é encontrado pela lógica que produz planos de execução gráfica.The Iterator catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. O ícone catchall não indica necessariamente uma condição de erro.The catchall icon does not necessarily indicate an error condition. Há três ícones catchall: azul (para iteradores), laranja (para cursores) e verde (para construções de linguagem do Transact-SQLTransact-SQL ).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
Ícone do operador Bookmark lookupBookmark lookup operator icon Key LookupKey Lookup O operador Key Lookup é uma pesquisa de indicadores em uma tabela com um índice clusterizado.The Key Lookup operator is a bookmark lookup on a table with a clustered index. A coluna Argumento contém o nome do índice clusterizado e a chave de clusterização usada para procurar a linha no índice clusterizado.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 é sempre acompanhada por um operador Loops .Key Lookup is always accompanied by a Nested Loops operator. Se a cláusula WITH PREFETCH aparecer na coluna Argument , o processador de consultas determinará que o ideal é usar a pré-busca assíncrona (read-ahead) ao observar marcadores no índice clusterizado.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.

O uso de um operador Key Lookup em um plano de consulta indica que a consulta pode se beneficiar de ajuste de desempenho.The use of a Key Lookup operator in a query plan indicates that the query might benefit from performance tuning. Por exemplo, o desempenho da consulta pode ser melhorado adicionando-se um índice de cobertura.For example, query performance might be improved by adding a covering index.
Ícone do operador de cursor KeysetKeyset cursor operator icon KeysetKeyset O operador Keyset usa um cursor que pode visualizar atualizações, mas não inserções feitas por outros.The Keyset operator uses a cursor that can see updates, but not inserts made by others.
Ícone do elemento de linguagem catchallLanguage element catchall icon Elemento LanguageLanguage Element O ícone catchall Language Element é exibido quando um ícone adequado para o iterador não é encontrado pela lógica que produz planos de execução gráfica.The Language Element catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. O ícone catchall não indica necessariamente uma condição de erro.The catchall icon does not necessarily indicate an error condition. Há três ícones catchall: azul (para iteradores), laranja (para cursores) e verde (para construções de linguagem do 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 O operador Left Anti Semi Join retorna cada linha da primeira entrada (parte superior) quando não existe uma linha correspondente na segunda entrada (parte 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. Se não houver nenhum predicado de junção na coluna Argument , cada linha será uma linha correspondente.If no join predicate exists in the Argument column, each row is a matching row. Left Anti Semi Join é um operador lógico.Left Anti Semi Join is a logical operator.
NoneNone Left Outer JoinLeft Outer Join O operador Left Outer Join retorna cada linha que satisfaz a junção da primeira entrada (parte superior) com a segunda entrada (parte inferior).The Left Outer Join operator returns each row that satisfies the join of the first (top) input with the second (bottom) input. Ele também retorna linhas da primeira entrada que não teve linhas correspondentes na segunda entrada.It also returns any rows from the first input that had no matching rows in the second input. As linhas não correspondentes na segunda entrada são retornadas como valores nulos.The nonmatching rows in the second input are returned as null values. Se não houver nenhum predicado de junção na coluna Argument , cada linha será uma linha correspondente.If no join predicate exists in the Argument column, each row is a matching row. Left Outer Join é um operador lógico.Left Outer Join is a logical operator.
NoneNone Left Semi JoinLeft Semi Join O operador Left Semi Join retornará todas as linhas da segunda entrada (inferior) quando existir uma linha correspondente na primeira entrada (superior).The Left Semi Join operator returns each row from the first (top) input when there is a matching row in the second (bottom) input. Se não houver nenhum predicado de junção na coluna Argument , cada linha será uma linha correspondente.If no join predicate exists in the Argument column, each row is a matching row. Left Semi Join é um operador lógico.Left Semi Join is a logical operator.
Ícone do operador Log row scanLog row scan operator icon Log Row ScanLog Row Scan O operador Log Row Scan examina o log de transações.The Log Row Scan operator scans the transaction log. Log Row Scan é um operador lógico e físico.Log Row Scan is a logical and physical operator.
Ícone do operador Merge intervalMerge interval operator icon Merge IntervalMerge Interval O operador Merge Interval mescla vários intervalos (com sobreposição potencial) para produzir intervalos mínimo, não sobrepostos, usados 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. Esse operador aparece geralmente sobre um ou mais operadores Compute Scalar sobre operadores Constant Scan que constroem os intervalos (representados como colunas em uma linha) que esse operador mescla.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 é um operador lógico e físico.Merge Interval is a logical and physical operator.
Ícone do operador Merge joinMerge join operator icon Junção de MesclagemMerge Join O operador Merge Join executa a inner join, left outer join, left semi join, left anti semi join, right outer join, right semi join, right anti semi join e operações lógicas de união.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.

Na coluna Argument , o operador Merge Join contém um predicado MERGE:() se a operação estiver executando uma junção de um para muitos, ou um predicado MANY-TO-MANY MERGE:() se a operação estiver executando uma junção de muitos para muitos.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. A coluna Argument também inclui uma lista de colunas separada por vírgula usada para executar a operação.The Argument column also includes a comma-separated list of columns used to perform the operation. O operador Merge Join requer duas entradas classificadas em suas respectivas colunas, possivelmente inserindo operações de classificação explícitas no plano de consulta.The Merge Join operator requires two inputs sorted on their respective columns, possibly by inserting explicit sort operations into the query plan. A junção de mesclagem é particularmente eficaz se não for exigida uma classificação explícita, por exemplo, se houver um índice da árvore B adequado no banco de dados, ou se a ordem de classificação puder ser explorada para diversas operações, como uma junção de mesclagem e um agrupamento com acúmulo.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 é um operador físico.Merge Join is a physical operator. Para obter mais informações, confira Noções básicas sobre junções de mesclagem.For more information, see Understanding Merge joins.
Ícone do operador Nested loopsNested loops operator icon Nested LoopsNested Loops O operador Nested Loops executa operações lógicas de junção interna, junção externa esquerda, left semi join e left anti semi join.The Nested Loops operator performs the inner join, left outer join, left semi join, and left anti semi join logical operations. As junções de loops aninhados executam uma pesquisa na tabela interna para cada linha da tabela externa, normalmente usando um índice.Nested loops joins perform a search on the inner table for each row of the outer table, typically using an index. O processador de consultas decide, com base em custos previstos, se classificará a entrada externa para aprimorar a localidade das pesquisas no índice da 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. Qualquer linha que atende ao predicado (opcional) na coluna Argument é retornada como aplicável, com base na operação lógica em execução.Any rows that satisfy the (optional) predicate in the Argument column are returned as applicable, based on the logical operation being performed. Quando o atributo OPTIMIZED é definido como True, isso significa que Loops aninhados otimizados (ou Classificação em lote) são usados.When the OPTIMIZED attribute is set to True, it means that an Optimized Nested Loops (or Batch Sort) is used. Nested Loops é um operador físico.Nested Loops is a physical operator. Para obter mais informações, consulte Noções básicas sobre junções de loops aninhados.For more information, see Understanding Nested Loops joins.
Ícone do operador Nonclustered index deleteNonclustered index delete operator icon Nonclustered Index DeleteNonclustered Index Delete O operador Nonclustered Index Delete exclui linhas de entrada do índice não cluster especificado na coluna Argument .The Nonclustered Index Delete operator deletes input rows from the nonclustered index specified in the Argument column. Nonclustered Index Delete é um operador físico.Nonclustered Index Delete is a physical operator.
Ícone do operador Nonclustered index insertNonclustered index insert operator icon Index InsertIndex Insert O operador Index Insert insere linhas de sua entrada no índice não clusterizado especificado na coluna Argument .The Index Insert operator inserts rows from its input into the nonclustered index specified in the Argument column. A coluna Argument também contém um predicado SET:(), que indica o valor para o qual cada coluna está definida.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Index Insert é um operador físico.Index Insert is a physical operator.
Ícone do operador Nonclustered index scanNonclustered index scan operator icon Index ScanIndex Scan O operador Index Scan recupera todas as linhas do índice não clusterizado especificado na coluna Argument .The Index Scan operator retrieves all rows from the nonclustered index specified in the Argument column. Se um predicado opcional WHERE:() aparecer na coluna Argument , somente as linhas que atenderem ao predicado serão retornadas.If an optional WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Index Scan é um operador lógico e físico.Index Scan is a logical and physical operator.
Ícone do operador Nonclustered index seekNonclustered index seek operator icon Index SeekIndex Seek O operador Index Seek usa a capacidade de busca de índices para recuperar linhas de um índice não clusterizado.The Index Seek operator uses the seeking ability of indexes to retrieve rows from a nonclustered index. A coluna Argument contém o nome do índice não clusterizado usado.The Argument column contains the name of the nonclustered index being used. Também contém o predicado SEEK:().It also contains the SEEK:() predicate. O mecanismo de armazenamento usa o índice para processar somente as linhas que atendem ao predicado SEEK:().The storage engine uses the index to process only those rows that satisfy the SEEK:() predicate. Ele pode incluir opcionalmente um predicado WHERE:(), que o mecanismo de armazenamento avaliará em relação a todas as linhas que atenderem ao predicado SEEK:() (não usa os índices para fazer isso).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). Se a coluna Argument contém a cláusula ORDERED, o processador de consulta determinou que as linhas fossem retornadas na ordem em que o índice não clusterizado as classificou.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. Se a cláusula ORDERED não estiver presente, o mecanismo de armazenamento pesquisará o índice no modo ideal (o que não garante que a saída será classificada).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 a saída retenha sua ordenação pode ser menos eficiente que produzir saída não classificada.Allowing the output to retain its ordering may be less efficient than producing nonsorted output. Index Seek é um operador lógico e físico.Index Seek is a logical and physical operator.
Ícone do operador Nonclustered index spoolNonclustered index spool operator icon Index SpoolIndex Spool O operador físico Index Spool contém um predicado SEEK:() na coluna Argument .The Index Spool physical operator contains a SEEK:() predicate in the Argument column. O operador Index Spool examina suas linhas de entrada, colocando uma cópia de cada linha em um arquivo spool oculto (armazenado no banco de dados tempdb que existe somente durante o tempo de vida da consulta) e cria um índice não clusterizado nas linhas.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. Isto permite que você use o recurso de busca de índices para produzir somente as linhas que correspondem ao predicado SEEK: ().This allows you to use the seeking capability of indexes to output only those rows that satisfy the SEEK:() predicate. Se for feito o retrocesso do operador (por exemplo, por um operador Nested Loops ) sem que haja necessidade de reassociação, serão usados os dados em spool em vez de um novo exame da 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.
Ícone do operador Nonclustered index updateNonclustered index update operator icon Nonclustered Index UpdateNonclustered Index Update O operador físico Nonclustered Index Update atualiza linhas de sua entrada no índice não clusterizado especificado na coluna Argument .The Nonclustered Index Update physical operator updates rows from its input in the nonclustered index specified in the Argument column. Se um predicado SET:() estiver presente, cada coluna atualizada será definida com esse valor.If a SET:() predicate is present, each updated column is set to this value. Nonclustered Index Update é um operador físico.Nonclustered Index Update is a physical operator.
Ícone do operador Online index insertOnline index insert operator icon Online Index InsertOnline Index Insert O operador físico Online Index Insert indica que uma operação de criação, alteração ou remoção de índice é executada online.The Online Index Insert physical operator indicates that an index create, alter, or drop operation is performed online. Ou seja, os dados da tabela subjacente permanecem disponíveis para usuários durante a operação de índice.That is, the underlying table data remains available to users during the index operation.
NoneNone ParallelismParallelism O operador Parallelism (ou iterador de troca) executa operações lógicas de fluxos de distribuição, fluxos de coleta e fluxos de repartição.The Parallelism operator (or Exchange Iterator) performs the distribute streams, gather streams, and repartition streams logical operations. As colunas Argument podem conter um predicado PARTITION COLUMNS:() com uma lista separada por vírgula das colunas que estão sendo particionadas.The Argument columns can contain a PARTITION COLUMNS:() predicate with a comma-separated list of the columns being partitioned. As colunas Argument também podem conter um predicado ORDER BY:(), listando as colunas para preservar a ordem de classificação durante o particionamento.The Argument columns can also contain an ORDER BY:() predicate, listing the columns to preserve the sort order for during partitioning. Parallelism é um operador físico.Parallelism is a physical operator. Para saber mais sobre o operador Parallelism, confira a série de blog de Craig Freedman.For more information about the Parallelism operator, see Craig Freedman's blog series.

Observação: se uma consulta tiver sido compilada como uma consulta paralela, mas no tempo de execução for executada como consulta serial, a saída do Plano de Execução gerada por SET STATISTICS XML ou pela opção Incluir Plano de Execução Real no SQL Server Management StudioSQL Server Management Studio não incluirá o elemento RunTimeInformation para o 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. Na saída SET STATISTICS PROFILE, as contagens reais de linha e número real de execuções exibirão zeros para o operador Parallelism .In SET STATISTICS PROFILE output, the actual row counts and actual number of executes will display zeroes for the Parallelism operator. Quando uma dessas condições ocorre, significa que o operador Parallelism só foi usado durante a compilação da consulta e não no plano de consulta em tempo de execução.When either condition occurs, it means that the Parallelism operator was only used during query compilation and not in the run-time query plan. Observe que às vezes os planos de consulta paralelos serão executados em série, se houver uma carga simultânea grande no servidor.Note that sometimes parallel query plans are run in serial if there is a high concurrent load on the server.
Ícone do operador Parameter table scanParameter table scan operator icon Parameter Table ScanParameter Table Scan O operador Parameter Table Scan examina uma tabela que está atuando como um parâmetro na consulta atual.The Parameter Table Scan operator scans a table that is acting as a parameter in the current query. Normalmente, isto é usado para consultas INSERT dentro de um procedimento armazenado.Typically, this is used for INSERT queries within a stored procedure. Parameter Table Scan é um operador lógico e físico.Parameter Table Scan is a logical and physical operator.
NoneNone Partial AggregatePartial Aggregate Agregação parcial é usada em planos paralelos.Partial Aggregate is used in parallel plans. Aplica uma função de agregação para tantas linhas de entrada quanto possíveis de forma que gravar em disco (conhecido como "derramamento") não é necessário.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 é o único operador físico (iterator) que implementa agregação de partição.Hash Match is the only physical operator (iterator) that implements partition aggregation. Agregação parcial é um operador lógico.Partial Aggregate is a logical operator.
Ícone do operador de cursor Population queryPopulation query cursor operator icon Population QueryPopulation Query O operador Population Query popula a tabela de trabalho de um cursor quando o cursor é aberto.The Population Query operator populates the work table of a cursor when the cursor is opened.
Ícone do operador de cursor Refresh queryRefresh query cursor operator icon Refresh QueryRefresh Query O operador Refresh Query busca dados atuais para linhas do buffer de busca.The Refresh Query operator fetches current data for rows in the fetch buffer.
Ícone do operador Remote deleteRemote delete operator icon Remote DeleteRemote Delete O operador Remote Delete exclui as linhas de entrada a partir de um objeto remoto.The Remote Delete operator deletes the input rows from a remote object. Remote Delete é um operador lógico e físico.Remote Delete is a logical and physical operator.
Operador remote index seek showplanRemote index seek showplan operator Remote Index ScanRemote Index Scan O operador Remote Index Scan examina o índice remoto especificado na coluna Argument.The Remote Index Scan operator scans the remote index specified in the Argument column. Verificação de Índice Remoto é um operador lógico e físico.Remote Index Scan is a logical and physical operator.
Operador remote index seek showplanRemote index seek showplan operator Remote Index SeekRemote Index Seek O operador de Busca de Índice Remoto usa a busca de um objeto de índice remoto para recuperar linhas.The Remote Index Seek operator uses the seeking ability of a remote index object to retrieve rows. A coluna Argument contém o nome do índice remoto que está sendo usado e o predicado SEEK:().The Argument column contains the name of the remote index being used and the SEEK:() predicate. Busca de Índice Remoto é um operador lógico e físico.Remote Index Seek is a logical physical operator.
Ícone do operador Remote insertRemote insert operator icon Remote InsertRemote Insert O operador Remote Insert insere linhas de entrada em um objeto remoto.The Remote Insert operator inserts the input rows into a remote object. ORemote Insert é um operador lógico e físico.Remote Insert is a logical and physical operator.
Ícone do operador Remote queryRemote query operator icon Remote QueryRemote Query O operador Remote Query submete uma consulta a uma fonte remota.The Remote Query operator submits a query to a remote source. O texto da consulta enviado ao servidor remoto aparece na coluna Argument .The text of the query sent to the remote server appears in the Argument column. Remote Query é um operador lógico e físico.Remote Query is a logical and physical operator.
Ícone do operador Remote scanRemote scan operator icon Remote ScanRemote Scan O operador Remote Scan examina um objeto remoto.The Remote Scan operator scans a remote object. O nome do objeto remoto aparece na coluna Argument .The name of the remote object appears in the Argument column. Remote Scan é um operador lógico e físico.Remote Scan is a logical and physical operator.
Ícone do operador Remote updateRemote update operator icon Remote UpdateRemote Update O operador Remote Update atualiza a linha de entrada em um objeto remoto.The Remote Update operator updates the input rows in a remote object. Remote Update é um operador lógico e físico.Remote Update is a logical and physical operator.
Ícone do operador de paralelismo Repartition streamsRepartition streams parallelism operator icon Repartition StreamsRepartition Streams O operador Repartition Streams (ou iterador de troca) consome vários fluxos e produz vários fluxos de registros.The Repartition Streams operator (or exchange iterator) consumes multiple streams and produces multiple streams of records. O conteúdo do registro e o formato não são alterados.The record contents and format are not changed. Se o otimizador de consulta usar um filtro de bitmap, o número de linhas no fluxo de saída será reduzido.If the query optimizer uses a bitmap filter, the number of rows in the output stream is reduced. Cada registro de um fluxo de entrada é colocado em um fluxo de saída.Each record from an input stream is placed into one output stream. Se esse operador for preservador de ordem, todos os fluxos de entrada deverão ser ordenados e mesclados em vários fluxos de saída ordenados.If this operator is order preserving, all input streams must be ordered and merged into several ordered output streams. Se a saída for particionada, a coluna Argument conterá um predicado PARTITION COLUMNS:() e as colunas de particionamento. Se a saída for ordenada, a coluna Argument conterá um predicado ORDER BY:() e as colunas que estão sendo ordenadas.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. Reparticionar Fluxos atua como um operador lógico.Repartition Streams is a logical operator. O operador é usado somente em planos de consulta paralelos.The operator is used only in parallel query plans.
Ícone do elemento de linguagem ResultResult language element icon ResultadoResult O operador Result consiste nos dados retornados ao término de um plano de consulta.The Result operator is the data returned at the end of a query plan. Normalmente, é o elemento raiz de um plano de execução.This is usually the root element of a Showplan. Result é um elemento de linguagem.Result is a language element.
Ícone do operador RID lookupRID lookup operator icon RID LookupRID Lookup RID Lookup é um indicador de pesquisa em um heap que usa um RID (identificador de linha) fornecido.RID Lookup is a bookmark lookup on a heap using a supplied row identifier (RID). A coluna Argument contém o rótulo de indicador usado para pesquisar a linha na tabela e o nome da tabela em que a linha é pesquisada.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 sempre é acompanhado por NESTED LOOP JOIN.RID Lookup is always accompanied by a NESTED LOOP JOIN. RID Lookup é um operador físico.RID Lookup is a physical operator. Para obter mais informações sobre pesquisas de indicador, consulte o artigo sobrepesquisa de indicadoresno blog do SQL Server no MSDN.For more information about bookmark lookups, see "Bookmark Lookup" on the MSDN SQL Server blog.
Ícone do operador Row count spoolRow count spool operator icon Row Count SpoolRow Count Spool O operador Row Count Spool examina a entrada, contando quantas linhas estão presentes e retornando o mesmo número de linhas sem qualquer dado nelas.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. Esse operador é usado quando é importante a verificação da existência de linhas, em vez dos dados contidos nas linhas.This operator is used when it is important to check for the existence of rows, rather than the data contained in the rows. Por exemplo, se um operador Nested loops executa uma operação left semi join e o predicado de junção se aplica à entrada interna, um spool de contagem de linhas poderá ser colocado no topo da entrada interna do 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. Em seguida, o operador Nested Loops poderá determinar quantas linhas saem do spool de contagem de linhas (porque não são necessários dados reais do lado interno) para determinar se retornará a linha exterior.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. ORow Count Spool é um operador físico.Row Count Spool is a physical operator.
NoneNone Right Anti Semi JoinRight Anti Semi Join O operador Right Anti Semi Join efetua a saída de cada linha a partir da segunda (inferior) entrada quando não existe uma linha correspondente na primeira (superior) entrada.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. Uma linha correspondente está definida como uma linha que atende ao predicado na coluna Argument (se nenhum predicado existir, cada linha será uma linha correspondente).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 é um operador lógico.Right Anti Semi Join is a logical operator.
NoneNone Right Outer JoinRight Outer Join O operador Right Outer Join retorna cada linha que satisfaz a junção da segunda entrada (parte inferior) associada a cada linha correspondente da primeira entrada (parte 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. Ele também retorna linhas da segunda entrada que não tiveram linhas correspondentes na primeira entrada, unidas com NULL.It also returns any rows from the second input that had no matching rows in the first input, joined with NULL. Se não houver nenhum predicado de junção na coluna Argument , cada linha será uma linha correspondente.If no join predicate exists in the Argument column, each row is a matching row. Right Outer Join é um operador lógico.Right Outer Join is a logical operator.
NoneNone Right Semi JoinRight Semi Join O operador Right Semi Join retornará todas as linha da segunda entrada (inferior) quando existir uma linha correspondente na primeira 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. Se não houver nenhum predicado de junção na coluna Argument , cada linha será uma linha correspondente.If no join predicate exists in the Argument column, each row is a matching row. Right Semi Join é um operador lógico.Right Semi Join is a logical operator.
Ícone do operador SegmentSegment operator icon SegmentSegment Segment é um operador lógico e físico.Segment is a physical and a logical operator. Divide a entrada definida em segmentos baseado no valor de uma ou mais colunas.It divides the input set into segments based on the value of one or more columns. Essas colunas são mostradas como argumentos no operador Segment .These columns are shown as arguments in the Segment operator. O operador produz então um segmento por vez.The operator then outputs one segment at a time.
Ícone do operador SequenceSequence operator icon SequênciaSequence O operador Sequence conduz amplos planos de atualização.The Sequence operator drives wide update plans. Em termos funcionais, ele executa cada entrada em sequência (da parte superior até a inferior).Functionally, it executes each input in sequence (top to bottom). Cada entrada normalmente é uma atualização de um objeto diferente.Each input is usually an update of a different object. Ele retorna somente as linhas que vêm de sua última entrada (parte inferior).It returns only those rows that come from its last (bottom) input. Sequence é um operador lógico e físico.Sequence is a logical and physical operator.
Ícone do operador Sequence projectSequence project operator icon Projeto de sequênciaSequence Project O operador Sequence Project adiciona colunas para executar computações sobre um conjunto ordenado.The Sequence Project operator adds columns to perform computations over an ordered set. Divide a entrada definida em segmentos baseado no valor de uma ou mais colunas.It divides the input set into segments based on the value of one or more columns. O operador produz então um segmento por vez.The operator then outputs one segment at a time. Estas colunas são mostradas como argumentos no operador Sequence Project .These columns are shown as arguments in the Sequence Project operator. Sequence Project é um operador lógico e físico.Sequence Project is a logical and physical operator.
NoneNone Segment RepartitionSegment Repartition Às vezes, em um plano de consulta paralelo, há regiões conceituais de iteradores.In a parallel query plan, sometimes there are conceptual regions of iterators. Todos os iteradores dentro de tal região podem ser executados por threads paralelos.All of the iterators within such a region can be executed by parallel threads. As próprias regiões devem ser executadas em série.The regions themselves must be executed serially. Alguns dos iteradores Parallelism em uma região individual são chamados Branch Repartition.Some of the Parallelism iterators within an individual region are called Branch Repartition. O iterador Parallelism no limite dessas duas regiões é chamado Segment Repartition.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch Repartition e Segment Repartition são operadores lógicos.Branch Repartition and Segment Repartition are logical operators.
Ícone do operador de cursor SnapshotSnapshot cursor operator icon InstantâneoSnapshot O operador Snapshot cria um cursor que não encontra mudanças feitas pelos outros.The Snapshot operator creates a cursor that does not see changes made by others.
Ícone do operador SortSort operator icon SortSort O operador Sort classifica todas as linhas de entrada.The Sort operator sorts all incoming rows. A coluna Argument contém um predicado DISTINCT ORDER BY:() se duplicatas forem removidas por esta operação, ou um predicado ORDER BY:() com uma lista separada por vírgula das colunas que estão sendo classificadas.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. As colunas são prefixadas com o valor ASC se as colunas forem classificadas em ordem crescente, ou o valor DESC se as colunas forem classificadas em ordem decrescente.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 é um operador lógico e físico.Sort is a logical and physical operator.
Ícone do operador SplitSplit operator icon SplitSplit O operador Split é usado para otimizar o processamento da atualização.The Split operator is used to optimize update processing. Ele divide cada operação de atualização em uma operação de exclusão e inserção.It splits each update operation into a delete and an insert operation. Split é um operador lógico e físico.Split is a logical and physical operator.
Ícone do operador SpoolSpool operator icon Eager SpoolEager Spool O operador Eager Spool pega toda a entrada, armazenando cada linha em um objeto temporário oculto armazenado no banco de dados tempdb .The Eager Spool operator takes the entire input, storing each row in a hidden temporary object stored in the tempdb database. Se for feito o retrocesso do operador (por exemplo, por um operador Nested Loops ) sem que haja necessidade de reassociação, serão usados os dados em spool em vez de um novo exame da 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. Se a reassociação for necessária, os dados em spool serão descartados e o objeto de spool será recriado por meio do novo exame da entrada (religação).If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. O operador Eager Spool cria seu arquivo de spool de maneira “ávida”, ou seja, cada vez que o operador pai do spool solicita a primeira linha, o operador de spool consome todas as linhas de seu operador de entrada e as armazena no spool.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. OEager Spool é um operador lógico.Eager Spool is a logical operator.
Ícone do operador SpoolSpool operator icon Lazy SpoolLazy Spool O operador lógico Lazy Spool armazena cada linha de sua entrada em um objeto temporário oculto armazenado no banco de dados tempdb .The Lazy Spool logical operator stores each row from its input in a hidden temporary object stored in the tempdb database. Se for feito o retrocesso do operador (por exemplo, por um operador Nested Loops ) sem que haja necessidade de reassociação, serão usados os dados em spool em vez de um novo exame da 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. Se a reassociação for necessária, os dados em spool serão descartados e o objeto de spool será recriado por meio do novo exame da entrada (religação).If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. O operador Lazy Spool cria seu arquivo de spool de maneira “lenta”, ou seja, sempre que o operador pai do spool solicita uma linha, o operador do spool obtém uma linha de seu operador de entrada e a armazena no spool, em vez de consumir todas as linhas de uma 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. O Lazy Spool é um operador lógico.Lazy Spool is a logical operator.
Ícone do operador SpoolSpool operator icon SpoolSpool O operador Spool salva um resultado de consulta intermediário no banco de dados tempdb .The Spool operator saves an intermediate query result to the tempdb database.
Ícone do operador Stream aggregateStream aggregate operator icon Stream AggregateStream Aggregate O operador Stream Aggregate agrupa linhas por uma ou mais colunas e, em seguida, calcula uma ou mais expressões de agregação retornadas pela consulta.The Stream Aggregate operator groups rows by one or more columns and then calculates one or more aggregate expressions returned by the query. A saída deste operador pode ser referenciada por operadores posteriores na consulta, retornada ao cliente, ou ambos.The output of this operator can be referenced by later operators in the query, returned to the client, or both. O operador Stream Aggregate requer a entrada de dados ordenada pelas colunas dentro de seus grupos.The Stream Aggregate operator requires input ordered by the columns within its groups. O otimizador usará um operador Sort antes desse operador se os dados ainda não estiverem classificados em função de um operador Sort anterior ou devido a uma busca ou análise 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. Na instrução SHOWPLAN_ALL ou no plano de execução gráfica no SQL Server Management StudioSQL Server Management Studio, são listadas as colunas no predicado GROUP BY na coluna Argument , e as expressões de agregação são listadas na coluna 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 é um operador físico.Stream Aggregate is a physical operator.
Ícone do operador SwitchSwitch operator icon SwitchSwitch Switch é um tipo especial de iterador de concatenação que tem n entradas.Switch is a special type of concatenation iterator that has n inputs. Uma expressão é associada a cada operador Switch .An expression is associated with each Switch operator. Dependendo do valor retornado da expressão (entre 0 e n-1), Switch copia o fluxo de entrada apropriado ao fluxo de saída.Depending on the return value of the expression (between 0 and n-1), Switch copies the appropriate input stream to the output stream. Um uso de Switch é implementar planos de consulta envolvendo cursores de avanço rápido com determinados operadores, como o operador TOP .One use of Switch is to implement query plans involving fast forward cursors with certain operators such as the TOP operator. Switch é um operador lógico e físico.Switch is both a logical and physical operator.
Ícone do operador Table deleteTable delete operator icon Table DeleteTable Delete O operador físico Table Delete exclui linhas da tabela especificadas na coluna Argument do plano de execução da consulta.The Table Delete physical operator deletes rows from the table specified in the Argument column of the query execution plan.
Ícone do operador Table insertTable insert operator icon Table InsertTable Insert O operador Table Insert insere linhas de sua entrada na tabela especificada na coluna Argument do plano de execução de consulta.The Table Insert operator inserts rows from its input into the table specified in the Argument column of the query execution plan. A coluna Argument também contém um predicado SET:(), que indica o valor para o qual cada coluna está definida.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Se Table Insert não tiver nenhum filho para valores de inserção, então a linha inserida será tirada do próprio operador Insert.If Table Insert has no children for insert values, then the row inserted is taken from the Insert operator itself. Table Insert é um operador físico.Table Insert is a physical operator.
Operador Table mergeTable merge operator Table MergeTable Merge O operador Table Merge aplica um fluxo de dados de mesclagem a um heap.The Table Merge operator applies a merge data stream to a heap. O operador exclui, atualiza ou insere linhas na tabela especificada na coluna Argument do operador.The operator deletes, updates, or inserts rows in the table specified in the Argument column of the operator. A operação real executada depende do valor do tempo de execução da coluna ACTION especificada na coluna Argument do 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 é um operador físico.Table Merge is a physical operator.
Ícone do operador Table scanTable scan operator icon Table ScanTable Scan O operador Table Scan recupera todas as linhas da tabela especificada na coluna Argument do plano de execução da consulta.The Table Scan operator retrieves all rows from the table specified in the Argument column of the query execution plan. Se um predicado WHERE:() aparecer na coluna Argument , somente as linhas que atenderem ao predicado serão retornadas.If a WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Table Scan é um operador lógico e físico.Table Scan is a logical and physical operator.
Ícone do operador Table spoolTable spool operator icon Table SpoolTable Spool O operador Table Spool examina a entrada e coloca uma cópia de cada linha em uma tabela de spool oculta que é armazenada no banco de dados tempdb e existe durante o tempo de vida da 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. Se for feito o retrocesso do operador (por exemplo, por um operador Nested Loops ) sem que haja necessidade de reassociação, serão usados os dados em spool em vez de um novo exame da 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 é um operador físico.Table Spool is a physical operator.
Ícone do operador Table spoolTable spool operator icon Window SpoolWindow Spool O operador Window Spool expande cada linha no conjunto de linhas que representa a janela associada a ele.The Window Spool operator expands each row into the set of rows that represents the window associated with it. Em uma consulta, a cláusula OVER define a janela em um conjunto de resultados de consulta e uma função de janela, e depois computa um valor para cada linha na janela.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 é um operador lógico e físico.Window Spool is a logical and physical operator.
Ícone do operador Table updateTable update operator icon Table UpdateTable Update O operador físico Table Update atualiza linhas de entrada na tabela especificada na coluna Argument do plano de execução de consulta.The Table Update physical operator updates input rows in the table specified in the Argument column of the query execution plan. O predicado SET: () determina o valor de cada coluna atualizada.The SET:() predicate determines the value of each updated column. Esses valores podem ser consultados na cláusula SET ou em outro lugar dentro desse operador assim como em outro lugar dessa consulta.These values may be referenced in the SET clause or elsewhere within this operator as well as elsewhere within this query.
Ícone do operador Table-valued functionTable-valued function operator icon Table-valued FunctionTable-valued Function O operador Table-valued Function avalia uma função com valor de tabela ( Transact-SQLTransact-SQL ou CLR) e armazena as linhas resultantes no banco de dados 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. Quando os iteradores pai solicitam as linhas, Table-valued Function retorna as linhas de tempdb.When the parent iterators request the rows, Table-valued Function returns the rows from tempdb.

As consultas com chamadas às funções com valor de tabela geram planos de consulta com o iterador de Table-valued Function .Queries with calls to table-valued functions generate query plans with the Table-valued Function iterator. Table-valued Function pode ser avaliada com valores de parâmetros diferentes:Table-valued Function can be evaluated with different parameter values:

-
OLeitor de XML da Função com valor de tabela insere um BLOB XML como parâmetro e processa um conjunto de linhas representando os nós XML na ordem dos documentos XML.Table-valued Function XML Reader inputs an XML BLOB as a parameter and produces a rowset representing XML nodes in XML document order. Outros parâmetros de entrada podem restringir os nós XML retornados a um subconjunto de documentos XML.Other input parameters may restrict XML nodes returned to a subset of XML document.

-Leitor de XML da Função com valor de tabela com filtro XPath é um tipo especial de Função com valor de tabela do Leitor de XML que restringe a saída a nós XML que atendem a uma expressão 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 é um operador lógico e físico.Table-valued Function is a logical and physical operator.
NoneNone Top N SortTop N Sort Top N Sort é semelhante ao iterador Classificar , com exceção de que somente as primeiras N linhas são necessárias e não todo o 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 pequenos de N, o mecanismo de execução de consultas do SQL ServerSQL Server tenta executar toda a operação de classificação na memória.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, o mecanismo de execução de consultas recorre a um método de classificação mais genérico para o qual N não é um 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.
Ícone do operador TopTop operator icon TopTop O operador Top verifica a entrada, retornando só o primeiro número ou porcentagem de linhas especificado, possivelmente com base em uma ordem de classificação.The Top operator scans the input, returning only the first specified number or percent of rows, possibly based on a sort order. A coluna Argument pode conter uma lista das colunas cujas associações estão sendo verificadas.The Argument column can contain a list of the columns that are being checked for ties. Em planos de atualização, o operador Top é usado para aplicar os limites de contagem de linhas.In update plans, the Top operator is used to enforce row count limits. Top é um operador lógico e físico.Top is a logical and physical operator.
Ícone do operador Extended (UDX)Extended operator (UDX) icon UDXUDX Operadores estendidos (UDX) implementam uma de muitas operações XQuery e XPATH no SQL ServerSQL Server.Extended Operators (UDX) implement one of many XQuery and XPath operations in SQL ServerSQL Server. Todos os operadores UDX são classificados como operadores lógicos e físicos.All UDX operators are both logical and physical operators.

O operador estendido (UDX) FOR XML é usado para serializar o conjunto relacional de linhas e insere em representação XML em uma única coluna BLOB, e em uma única linha de saída.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. É um operador de agregação XML sensível à ordenação.It is an order sensitive XML aggregation operator.

O operador estendido (UDX) XML SERIALIZER é um operador de agregação XML sensível à ordenação.Extended operator (UDX) XML SERIALIZER is an order sensitive XML aggregation operator. Ele insere linhas que representam nós XML ou escalares de XQuery em ordem de documento XML e produz um XML BLOB serializado em uma única coluna XML em uma única linha de saída.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.

O operador estendido (UDX) XML FRAGMENT SERIALIZER é um tipo especial de XML SERIALIZER que é usado para processar linhas de entrada que representam fragmentos de XML que são inseridos na extensão de modificação de dados de inserção de 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.

O operador estendido (UDX) XQUERY STRING avalia o valor da cadeia de caracteres XQuery das linhas de entrada que representam nós de XML.Extended operator (UDX) XQUERY STRING evaluates the XQuery string value of input rows representing XML nodes. É um operador de agregação de cadeia sensível à ordenação.It is an order sensitive string aggregation operator. Produz uma linha com colunas que representam o escalar de XQuery que contém o valor de cadeia de caracteres da entrada.It outputs one row with columns representing the XQuery scalar that contains string value of the input.

O operador estendido (UDX) XQUERY LIST DECOMPOSER é um operador de decomposição de lista do XQuery.Extended operator (UDX) XQUERY LIST DECOMPOSER is an XQuery list decomposition operator. Para cada linha de entrada que representa um nó de XML ele produz uma ou mais linhas, cada uma representando o escalar de Xquery, que contém um valor de elemento de lista caso a entrada seja do tipo lista de 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.

O operador estendido (UDX) XQUERY DATA avalia a função XQuery fn:data() na entrada que representa os nós XML.Extended operator (UDX) XQUERY DATA evaluates the XQuery fn:data() function on input representing XML nodes. É um operador de agregação de cadeia sensível à ordenação.It is an order sensitive string aggregation operator. Ele produz uma linha com colunas que representam o escalar de XQuery que contém o resultado de fn:data() .It outputs one row with columns representing XQuery scalar that contains the result of fn:data().

O operador estendido XQUERY CONTAINS avalia a função XQuery fn:contains() na entrada que representa os nós XML.Extended operator XQUERY CONTAINS evaluates the XQuery fn:contains() function on input representing XML nodes. É um operador de agregação de cadeia sensível à ordenação.It is an order sensitive string aggregation operator. Ele produz uma linha com colunas que representam o escalar de XQuery que contém o resultado de fn:contains() .It outputs one row with columns representing XQuery scalar that contains the result of fn:contains().

O operador estendido UPDATE XML NODE atualiza o nó XML na extensão de modificação de dados de substituição XQuery no método modify() no 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 O operador Union verifica várias entradas, gerando a saída de cada linha examinada e removendo duplicatas.The Union operator scans multiple inputs, outputting each row scanned and removing duplicates. Union é um operador lógico.Union is a logical operator.
Ícone do operador Update (mecanismo de banco de dados)Update (Database Engine) operator icon Update (atualizar)Update O operador Update atualiza cada linha de sua entrada no objeto especificado na coluna Argument do plano de execução 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 é um operador lógico.Update is a logical operator. O operador físico é Table Update, Index Updateou Clustered Index Update.The physical operator is Table Update, Index Update, or Clustered Index Update.
Ícone do elemento de linguagem WhileWhile language element icon WhileWhile O operador While implementa Transact-SQLTransact-SQL durante o loop.The While operator implements the Transact-SQLTransact-SQL while loop. While é um elemento de linguagemWhile is a language element