Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Os operadores descrevem como o SQL Server executa uma consulta ou uma instrução DML (Data Manipulation Language). O otimizador de consulta usa operadores para criar um plano de consulta para criar o resultado especificado na consulta ou para executar a operação especificada na instrução DML. O plano de consulta é uma árvore que consiste em operadores físicos. Você pode exibir o plano de consulta usando as SET SHOWPLAN instruções, as opções do plano de execução gráfico no SQL Server Management Studio ou os eventos do plano de exibição de Eventos Estendidos.
Os operadores são classificados como operadores lógicos e físicos.
Operadores lógicos
Os operadores lógicos descrevem a operação algébrica relacional usada para processar uma instrução. Em outras palavras, os operadores lógicos descrevem conceitualmente qual operação precisa ser executada.
Operadores físicos
Os operadores físicos implementam a operação descrita pelos operadores lógicos. Cada operador físico é um objeto ou rotina que executa uma operação. Por exemplo, alguns operadores físicos acessam colunas ou linhas de uma tabela, índice ou exibição. Outros operadores físicos realizam operações como cálculos, agregações, verificações de integridade de dados ou junções. Os operadores físicos têm custos associados a eles.
Os operadores físicos inicializam, coletam dados e fecham. Especificamente, o operador físico pode responder às seguintes três chamadas de método:
Open(): OOpen()método faz com que um operador físico inicialize a si mesmo e configure todas as estruturas de dados necessárias. Embora o operador físico possa receber muitasOpen()chamadas, geralmente recebe apenas uma.GetRow(): OGetRow()método faz com que um operador físico obtenha a primeira ou subsequente linha de dados. O operador físico pode receber zero ou muitasGetRow()chamadas.Close(): OClose()método faz com que um operador físico execute algumas operações de limpeza e desligue-se. Um operador físico recebe apenas umaClose()chamada, mas umaClose()chamada nem sempre é garantida.
O GetRow() método retorna uma linha de dados e o número de vezes que é chamado aparece como ActualRows na saída do showplan que é produzida pelo showplan gráfico e XML. Para obter mais informações sobre essas SET opções, consulte SET STATISTICS PROFILE e SET STATISTICS XML.
As contagens ActualRebinds e ActualRewinds que aparecem na saída do showplan referem-se ao número de vezes que o Open() método é chamado. A menos que um operador esteja no lado interno de uma junção de loops aninhados, ActualRebinds é igual a um e ActualRewinds é igual a zero. Se um operador estiver no lado interno de uma junção de loop, o número total de rebinds e rewinds deve ser igual ao número de linhas processadas no lado externo da junção. Uma religação significa que um ou mais dos parâmetros correlacionados da junção foram alterados e o lado interno deve ser reavaliado. Um retrocesso significa que nenhum dos parâmetros correlacionados foi alterado e o conjunto de resultados interno anterior pode ser reutilizado.
ActualRebinds e ActualRewinds estão presentes na saída do showplan XML produzida usando SET STATISTICS XML ON e o showplan gráfico. Eles são preenchidos apenas para os operadores Spool de índice não clusterizado,Consulta remota, Pool de contagem de linhas, Classificar, Pool de tabela e Função com valor de tabela .
ActualRebinds e ActualRewinds também podem ser preenchidos para os operadores Assert e Filter quando o atributo StartupExpression é definido como TRUE.
Quando ActualRebinds e ActualRewinds estão presentes em um showplan XML, eles são comparáveis a EstimateRebinds e EstimateRewinds. Quando estão ausentes, o número estimado de linhas (EstimateRows) é comparável ao número real de linhas (ActualRows). A saída do plano de exibição gráfico real exibe zeros para as religações e retrocessos reais quando eles estão ausentes.
Um contador relacionado, ActualEndOfScans, está disponível no plano de apresentação XML e gráfico. Sempre que um operador físico atinge o final de seu fluxo de dados, esse contador aumenta em um. Um operador físico pode chegar ao final de seu fluxo de dados zero, uma ou várias vezes. Tal como acontece com rebinds e rewinds, o final da contagem de varreduras pode ser mais de um, apenas se o operador estiver no lado interno de uma junção de loop. O final da contagem de exames deve ser menor ou igual à soma do número de rebinds e rewinds.
Mapear operadores físicos e lógicos
O Otimizador de Consulta cria um plano de consulta como uma árvore que consiste em operadores lógicos. Depois que o otimizador de consulta cria o plano, o otimizador de consulta escolhe o operador físico mais eficiente para cada operador lógico. O otimizador de consulta usa uma abordagem baseada em custo para determinar qual operador físico implementa um operador lógico.
Normalmente, uma operação lógica pode ser implementada por vários operadores físicos. No entanto, em casos raros, um operador físico também pode implementar várias operações lógicas.
Execução em modo de lote
A execução em modo de lote é um método de processamento de consulta usado para processar várias linhas juntas (daí o termo lote) em vez de uma linha de cada vez. O processamento em modo batch usa algoritmos otimizados para CPUs multi-core e maior taxa de transferência de memória em hardware moderno. O modo de lote pode ser usado por um conjunto de operadores para objetos rowstore e columnstore. Para obter mais informações, consulte Guia de arquitetura de processamento de consultas.
Descrições dos operadores
Esta seção contém descrições dos operadores lógicos e físicos. Pode visualizar as propriedades dos planos de consulta e operadores usando o painel de Propriedades na vista Query Plan do SQL Server Management Studio (SSMS).
Sugestão
Sempre que um determinado ícone de plano de execução gráfica tem um círculo amarelo com duas setas da direita para a esquerda, significa que o operador executou em paralelo. Para obter mais informações sobre paralelismo, consulte o Guia de Arquitetura de Thread e Tarefa.
| Ícone | Operador de Showplan | Description |
|---|---|---|
| Junção adaptativa | O operador Adaptive Join permite que a escolha de um método de junção de hash ou loops aninhados seja adiada até que a primeira entrada tenha sido verificada. O Adaptive Join é um operador físico. Para obter mais informações, consulte Noções básicas sobre associações adaptáveis. |
|
| Agregado | O operador Aggregate calcula uma expressão contendo MIN, MAX, SUM, COUNT, ou AVG.Aggregate é um operador lógico e físico. |
|
| Expressão Aritmética | O operador Expressão Aritmética calcula um novo valor a partir de valores existentes em uma linha. A Expressão Aritmética não é usada em versões mais recentes do SQL Server. | |
| Afirmar | O operador Assert verifica uma condição. Por exemplo, ele valida a integridade referencial ou garante que uma subconsulta escalar retorne uma linha. Para cada linha de entrada, o operador Assert avalia a expressão no painel Propriedades do plano de execução. Se essa expressão for avaliada como NULL, a linha será passada pelo operador Assert e a execução da consulta continuará. Se essa expressão for avaliada como um valor não nulo, o erro apropriado será gerado.Assert é um operador físico. |
|
| Atribuir | O operador Assign atribui o valor de uma expressão ou constante a uma variável. Atribuir é um elemento de linguagem. |
|
| Nenhum | Concat assíncrono | O operador Async Concat é usado apenas em consultas remotas (consultas distribuídas). Tem n filhos e um nó pai. Normalmente, algumas das crianças são computadores remotos que participam de uma consulta distribuída.
O Async Concat emite Open() chamadas para todas as crianças simultaneamente e, em seguida, aplica um bitmap a cada criança. Para cada bit que é um 1, o Async Concat envia as linhas de saída para o nó pai sob demanda. |
| Bitmap | O SQL Server usa o operador Bitmap para implementar filtragem de bitmap em planos de consulta paralela. A filtragem de bitmap acelera a execução da consulta eliminando linhas com valores de chave que não podem produzir nenhum registro de junção antes de passar linhas por outro operador, como o operador Parallelism . Um filtro de bitmap usa uma representação compacta de um conjunto de valores de uma tabela em uma parte da árvore do operador para filtrar linhas de uma segunda tabela em outra parte da árvore. Ao remover linhas desnecessárias no início da consulta, os operadores subsequentes têm menos linhas para trabalhar e o desempenho geral da consulta melhora. O otimizador determina quando um bitmap é seletivo o suficiente para ser útil e em quais operadores aplicar o filtro. Bitmap é um operador físico. |
|
| Criação de bitmap | O operador Bitmap Create aparece na saída showplan onde os bitmaps são criados. Bitmap Create é um operador lógico. |
|
| Nenhum | Repartição de ramificação | Em um plano de consulta paralelo, às vezes há regiões conceituais de iteradores. Todos os iteradores dentro de tal região podem ser executados por threads paralelos. As próprias regiões devem ser executadas em série. Alguns dos iteradores de paralelismo dentro de uma região individual são chamados de partição de ramificação. O iterador de paralelismo no limite de duas dessas regiões é chamado de partição de segmento. Branch Repartition e Segment Repartition são operadores lógicos. |
| Transmissão | A transmissão tem um nó filho e n nós pai. O Broadcast envia suas linhas de entrada para vários consumidores sob demanda. Cada consumidor recebe todas as linhas. Por exemplo, se todos os consumidores forem lados de construção de uma junção de hash, então n cópias das tabelas de hash serão construídas. | |
| Criar hash | Indica a compilação de uma tabela de hash em lote para um índice columnstore otimizado para memória. Aplica-se a: Somente SQL Server 2012 (11.x). |
|
| Exclusão de índice clusterizado | O operador Clustered Index Delete exclui linhas do índice clusterizado especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. Se um SeekPredicate ou Predicado estiver presente, somente as linhas que satisfazem o predicado serão excluídas. Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Clustered Index Delete é um operador físico. |
|
| Inserção de índice clusterizado | O operador Clustered Index Insert insere linhas de sua entrada no índice clusterizado especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. O plano de execução XML inclui as propriedades SetPredicate e ColumnReference , que podem ser usadas para determinar o valor para o qual cada coluna está definida. Se Clustered Index Insert não tiver filhos para inserir valores, a linha inserida será retirada do próprio operador Insert . Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Clustered Index Insert é um operador físico. |
|
| Mesclagem de índice clusterizado | O operador Clustered Index Merge aplica um fluxo de dados de mesclagem a um índice clusterizado. O operador exclui, atualiza ou insere linhas do índice clusterizado especificado na propriedade Object , listada no painel Propriedades dos showplans gráficos e XML. A operação real executada depende do valor de tempo de execução da propriedade ActionColumn . Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Clustered Index Merge é um operador físico. |
|
| Verificação de índice agrupado | O operador Clustered Index Scan verifica o índice clusterizado especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. Quando um Predicado opcional está presente, somente as linhas que satisfazem o predicado são retornadas. Se a propriedade Ordered no painel Propriedades ou no plano de exibição XML for True, o processador de consultas determinou que as linhas devem ser retornadas na ordem em que o índice clusterizado as classificou. Se a propriedade Ordered for False, o Mecanismo de Banco de Dados verificará o índice da maneira ideal, sem necessariamente classificar a saída. O Clustered Index Scan é um operador lógico e físico. |
|
| Busca de índice agrupado | O operador Clustered Index Seek usa a capacidade de busca de índices para recuperar linhas de um índice clusterizado. A propriedade Object , listada no painel Properties dos showplans gráficos e XML, contém o nome do índice clusterizado que está sendo usado. O SeekPredicate contém o predicado para a busca. O Mecanismo de Banco de Dados usa o índice para processar somente as linhas que satisfazem o SeekPredicate. Ele também pode incluir uma propriedade Predicado em que o Mecanismo de Banco de Dados avalia em relação a todas as linhas que satisfazem o SeekPredicate, mas isso é opcional e não usa índices para concluir esse processo. Se a propriedade Ordered no painel Propriedades ou no plano de exibição XML for True, o processador de consultas determinou que as linhas devem ser retornadas na ordem em que o índice clusterizado as classificou. Se a propriedade Ordered for False, o Mecanismo de Banco de Dados pesquisará o índice da maneira ideal, sem necessariamente classificar a saída. Exigir que a saída mantenha sua ordem pode ser menos eficiente do que produzir saída não classificada. Clustered Index Seek é um operador lógico e físico. |
|
| Atualização de índice clusterizado | O operador Clustered Index Update atualiza as linhas de entrada no índice clusterizado especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. Se a propriedade Predicado estiver presente, somente as linhas que satisfazem esse predicado serão atualizadas. Se a propriedade SetPredicate estiver presente, cada coluna atualizada será definida com esse valor. Se a propriedade DefineValue estiver presente, os valores que esse operador define serão listados. Esses valores podem ser referenciados SET na cláusula ou em outro lugar dentro deste operador e em outro lugar dentro desta consulta.Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. A Atualização de Índice Clusterizado é um operador lógico e físico. |
|
| Fechar | O operador Collapse otimiza o processamento de atualização. Quando uma atualização é executada, ela pode ser dividida (usando o operador Split ) em uma exclusão e uma inserção. O painel Propriedades contém um grupo por predicado que especifica uma lista de colunas de chave. Se o processador de consultas encontrar linhas adjacentes que excluem e inserem os mesmos valores de chave, ele substituirá essas operações separadas por uma única operação de atualização mais eficiente. Collapse é um operador lógico e físico. |
|
| Columnstore Index Excluir | O operador Columnstore Index Delete representa a exclusão de linhas do índice columnstore especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. A exclusão ocorre por meio do Clustered Index Delete para um índice columnstore clusterizado e por meio do operador Index Delete para um índice columnstore não clusterizado. O tipo de índice (Clustered, NonClustered ou ViewNonClustered) é especificado na propriedade IndexKind no plano de exibição XML. O SeekPredicate não é suportado para uma exclusão de índice Columnstore. As linhas a serem excluídas são lidas de um operador filho. Columnstore Index Delete é um operador físico. |
|
| Columnstore Index Inserir | O operador Columnstore Index Insert representa a inserção de linhas de sua entrada no índice columnstore especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. A inserção ocorre por meio da inserção de índice clusterizado para um índice columnstore clusterizado e por meio do operador Index Insert para um índice columnstore não clusterizado. O tipo de índice (Clustered, NonClustered ou ViewNonClustered) é especificado na propriedade IndexKind no plano de exibição XML. O plano de execução XML inclui as propriedades SetPredicate e ColumnReference , que podem ser usadas para determinar o valor para o qual cada coluna está definida. Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Columnstore Index Insert é um operador físico. |
|
| Mesclagem de índice Columnstore | O Columnstore Index Merge representa a aplicação de um fluxo de dados de mesclagem usando o operador Clustered Index Merge . O operador exclui, atualiza ou insere linhas do índice columnstore clusterizado especificado na propriedade Object , listada no painel Propriedades dos showplans gráficos e XML. A operação real executada depende do valor de tempo de execução da propriedade ActionColumn . Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Columnstore Index Merge é um operador físico. |
|
| Verificação de índice Columnstore | O operador Columnstore Index Scan representa uma verificação do índice columnstore especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. A verificação ocorre por meio da Verificação de índice clusterizado para um índice columnstore clusterizado e por meio do operador Index Scan para um índice columnstore não clusterizado. O tipo de índice (Clustered, NonClustered ou ViewNonClustered) é especificado na propriedade IndexKind no plano de exibição XML. Quando um Predicado opcional está presente, somente as linhas que satisfazem o predicado são retornadas. A propriedade SeekPredicate só está disponível para um índice columnstore particionado e apenas condições de igualdade ou desigualdade. Se a coluna particionada estiver no predicado de consulta, a eliminação da partição poderá reduzir o número de grupos de linhas a serem examinados. Columnstore Index Scan é um operador físico. |
|
| Atualização do índice Columnstore | O operador Columnstore Index Update representa uma atualização para uma ou mais linhas no índice columnstore especificado na propriedade Object , listada no painel Properties dos showplans gráficos e XML. As atualizações ocorrem por meio do operador Atualização de Índice Clusterizado para um índice columnstore clusterizado e por meio do operador Atualização de Índice para um índice columnstore não clusterizado. O tipo de índice (Clustered, NonClustered ou ViewNonClustered) é especificado na propriedade IndexKind no plano de exibição XML. O SeekPredicate não é suportado para uma atualização de índice Columnstore. As linhas a serem atualizadas são lidas de um operador filho. Se a propriedade SetPredicate estiver presente, cada coluna atualizada será definida com esse valor. Se a propriedade DefineValue estiver presente, os valores que esse operador define serão listados. Esses valores podem ser referenciados SET na cláusula ou em outro lugar dentro deste operador e em outro lugar dentro desta consulta.Observação: As alterações nos índices agrupados podem afetar os índices não clusterizados. Columnstore Index Update é um operador físico. |
|
| Calcular escalar | O operador Compute Scalar avalia uma expressão para produzir um valor escalar computado. Isso pode ser retornado ao usuário, referenciado em outro lugar na consulta ou ambos. Um exemplo de ambos está em um predicado de filtro ou predicado de junção. Os operadores Compute Scalar que aparecem em showplans gerados por SET STATISTICS XML podem não conter o elemento RunTimeInformation . Em planos de exibição gráficos, Linhas Reais, Religações Reais e Rebobinagens Reais podem estar ausentes da janela Propriedades quando a opção Incluir Plano de Execução Real é selecionada no SQL Server Management Studio. Quando isso ocorre, significa que, embora esses operadores tenham sido usados no plano de consulta compilado, seu trabalho foi executado por outros operadores no plano de consulta de tempo de execução. O número de execuções na saída do showplan gerado por SET STATISTICS PROFILE é equivalente à soma de rebinds e rewinds em showplans gerados pelo SET STATISTICS XML.Compute Scalar é um operador lógico e físico. |
|
| Concatenação | O operador de concatenação verifica várias entradas, retornando cada linha digitalizada.
A concatenação é normalmente usada para implementar a construção Transact-SQL UNION ALL . O operador físico de concatenação tem duas ou mais entradas e uma saída. A concatenação copia linhas do primeiro fluxo de entrada para o fluxo de saída e, em seguida, repete essa operação para cada fluxo de entrada adicional.A concatenação é um operador lógico e físico. |
|
| Condicional (Se e Enquanto) | O operador Conditional realiza processamento condicional com base em um IF ou WHILE loop.
Se e Enquanto são elementos de linguagem. |
|
| Varredura constante | O operador Constant Scan introduz uma ou mais linhas constantes em uma consulta. Um operador Compute Scalar é frequentemente usado após uma Constant Scan para adicionar colunas a uma linha produzida pelo operador Constant Scan . A verificação constante pode gerar uma ou mais linhas com zero ou mais colunas. | |
| Converter | O operador Convert converte um tipo de dados escalar em outro. Converter é um elemento de linguagem. |
|
| Junção cruzada | O operador Cross Join une cada linha da primeira entrada (superior) com cada linha da segunda entrada (inferior). Cross Join é um operador lógico. |
|
| Cursor | Os operadores lógicos e físicos do cursor são usados para descrever como uma consulta ou atualização envolvendo operações de cursor é executada. Os operadores físicos descrevem o algoritmo de implementação física usado para processar o cursor; por exemplo, usando um cursor controlado por conjunto de teclas. Cada etapa na execução de um cursor envolve um operador físico. Os operadores lógicos descrevem uma propriedade do cursor, como o cursor é somente leitura. Os operadores lógicos incluem Assíncrono, Otimista, Primário, Somente leitura, Bloqueios de rolagem, Secundário e Síncrono. Os operadores físicos incluem Dynamic, Fetch Query, Keyset, Population Query, Refresh Query e Snapshot. |
|
| Declarar | O operador Declare aloca uma variável local no plano de consulta. Declare é um elemento linguístico. |
|
| Eliminar | O operador Delete exclui linhas (de um objeto) que satisfazem o predicado opcional no painel Propriedades . | |
| Verificação excluída | Nos gatilhos, o operador Verificação Excluída verifica a tabela excluída . | |
| Nenhum | Distintos | O operador Distinct remove duplicatas de um conjunto de linhas ou de uma coleção de valores. Distinct é um operador lógico. |
| Nenhum | Classificação distinta | O operador lógico Distinguished Sort verifica a entrada, removendo duplicatas e classificando pelas colunas especificadas na ordem distinta por predicado do painel Propriedades . Distinct Sort é um operador lógico. |
| Distribuir fluxos | O operador Distribute Streams é usado somente em planos de consulta paralelos. O operador Distribute Streams obtém um único fluxo de entrada de registros e produz vários fluxos de saída. O conteúdo e o formato do registo não são alterados. Cada registro do fluxo de entrada aparece em um dos fluxos de saída. Este operador preserva automaticamente a ordem relativa dos registos de entrada nos fluxos de saída. Normalmente, o hashing é usado para decidir a qual fluxo de saída pertence um determinado registro de entrada. Se a saída for particionada, o painel Propriedades conterá um predicado de colunas de partição e as colunas de particionamento. Distribute Streams é um operador lógico |
|
| Dinâmica | O operador Dynamic usa um cursor que pode ver todas as alterações feitas por outras pessoas. | |
| Carretel ansioso | O operador Eager Spool recebe toda a entrada, armazenando cada linha em um objeto temporário oculto armazenado no banco de dados tempdb. Se o operador for rebobinado (por exemplo, por um operador Nested Loops ), mas nenhuma religação for necessária, os dados spooled serão usados em vez de verificar novamente a entrada. Se a religação for necessária, os dados spooled serão descartados e o objeto spool será reconstruído examinando novamente a entrada (rebound). O operador Eager Spool constrói seu arquivo de spool de uma maneira "ansiosa": quando 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. Eager Spool é um operador lógico. |
|
| Consulta de busca | O operador Fetch Query recupera linhas quando uma busca é emitida contra um cursor. | |
| Filtro | O operador Filter verifica a entrada, retornando apenas as linhas que satisfazem a expressão de filtro (predicado) que aparece no painel Propriedades . | |
| Nenhum | Fluxo Distinto | O operador Flow Distinct verifica a entrada, removendo duplicatas. Enquanto o operador Distinct consome toda a entrada antes de produzir qualquer saída, o operador Flow Distinct retorna cada linha à medida que é obtida da entrada (a menos que essa linha seja uma duplicata, caso em que é descartada). Flow Distinct é um operador lógico. |
| Verificação de Referências de Chaves Estrangeiras | O operador Foreign Key References Check 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 quebra a integridade referencial. O operador Foreign Key References Check é usado quando existem mais de 253 referências de chave estrangeira na mesma chave primária ou exclusiva. Foreign Key References Check é um operador lógico e físico. |
|
| Junção Exterior Completa | O operador lógico Full Outer Join retorna cada linha satisfazendo o predicado de junção da primeira entrada (superior) unida com cada linha da segunda entrada (inferior). Ele também retorna linhas de: - A primeira entrada que não teve correspondências na segunda entrada. - A segunda entrada que não teve correspondências na primeira entrada. A entrada que não contém os valores correspondentes é retornada como um valor nulo. Full Outer Join é um operador lógico. |
|
| Reunir fluxos | O operador Gather Streams só é usado em planos de consulta paralelos. O operador Gather Streams consome vários fluxos de entrada e produz um único fluxo de saída de registros combinando os fluxos de entrada. O conteúdo e o formato do registo não são alterados. Se este operador estiver preservando o pedido, todos os fluxos de entrada devem ser solicitados. Se a saída for ordenada, o painel Propriedades conterá uma ordem por predicado e os nomes das colunas que estão sendo ordenadas. Gather Streams é um operador lógico. |
|
| Correspondência de hash | O operador Hash Match cria uma tabela de hash calculando um valor de hash para cada linha a partir de sua entrada de compilação. Um predicado de hash , com uma lista de colunas usadas para criar um valor de hash, aparece no painel Propriedades . Em seguida, para cada linha de teste (conforme aplicável), ele calcula um valor de hash (usando a mesma função de hash) e procura correspondências na tabela de hash. Se um predicado residual estiver presente (identificado pelo RESIDUAL:() painel Propriedades ), esse predicado também deverá ser satisfeito para que as linhas sejam consideradas uma correspondência. O comportamento depende da operação lógica que está sendo executada:- Para quaisquer junções, use a primeira entrada (superior) para construir a tabela de hash e a segunda entrada (inferior) para sondar a tabela de hash. A saída corresponde (ou não corresponde) conforme ditado pelo tipo de junção. Se várias associações usarem a mesma coluna de junção, essas operações serão agrupadas em uma equipe de hash. - Para os operadores distintos ou agregados, use a entrada para construir a tabela de hash (removendo duplicatas e computando quaisquer expressões agregadas). Quando a tabela de hash é criada, verifique a tabela e produza todas as entradas. - Para o operador da união, use a primeira entrada para construir a tabela de hash (removendo duplicatas). Use a segunda entrada (que não deve ter duplicatas) para sondar a tabela de hash, retornando todas as linhas que não têm correspondências, depois verifique a tabela de hash e retorne todas as entradas. Hash Match é um operador físico. Para obter mais informações, consulte Noções básicas sobre associações de hash. |
|
| Exclusão de índice | O operador Exclusão de índice exclui linhas do índice não clusterizado especificado no painel Propriedades . Index Delete é um operador físico. |
|
| Inserção de índice | O operador Inserção de índice insere linhas de sua entrada no índice não clusterizado especificado no painel Propriedades . O painel Propriedades também contém um predicado definido , que indica o valor para o qual cada coluna está definida. Index Insert é um operador físico. |
|
| Verificação de índice | O operador Verificação de Índice recupera todas as linhas do índice não clusterizado especificado no painel Propriedades . Se um predicado opcional aparecer no painel Propriedades , somente as linhas que satisfazem o predicado serão retornadas. O Index Scan é um operador lógico e físico. |
|
| Busca de índice | O operador Index Seek usa a capacidade de busca de índices para recuperar linhas de um índice não clusterizado. O painel Propriedades contém o nome do índice não clusterizado que está sendo usado. Também contém o predicado de busca . O Mecanismo de Banco de Dados usa o índice para processar somente as linhas que satisfazem o predicado de busca . Opcionalmente, pode incluir um predicado where , que o Mecanismo de Banco de Dados avalia em relação a todas as linhas que satisfazem o predicado de busca (ele não usa os índices para fazer isso). Se o painel Propriedades contiver a ORDERED cláusula, o processador de consultas determinou que as linhas devem ser retornadas na ordem em que o índice não clusterizado as classificou. Se a ORDERED cláusula não estiver presente, o Mecanismo de Banco de Dados pesquisará o índice da maneira ideal (o que não garante que a saída seja classificada). Permitir que a saída mantenha sua ordem pode ser menos eficiente do que produzir saída não classificada.Index Seek é um operador lógico e físico. |
|
| Spool de índice | O operador Spool de índice contém um predicado de busca no painel Propriedades . O operador Index Spool verifica suas linhas de entrada, colocando uma cópia de cada linha em um arquivo de spool oculto (armazenado no banco de dados tempdb e existente apenas durante o tempo de vida da consulta) e cria um índice não clusterizado nas linhas. Isso permite que você use a capacidade de busca de índices para produzir apenas as linhas que satisfazem o predicado de busca . Se o operador for rebobinado (por exemplo, por um operador Nested Loops ), mas nenhuma religação for necessária, os dados spooled serão usados em vez de verificar novamente a entrada. Index Spool é um operador físico. |
|
| Atualização do índice | O operador físico Atualização de Índice atualiza linhas a partir de sua entrada no índice não clusterizado especificado no painel Propriedades . Se um predicado definido estiver presente, cada coluna atualizada será definida com esse valor. A Atualização de Índice é um operador físico. |
|
| Junte-se Internamente | O operador Inner Join retorna cada linha que satisfaz o predicado de junção da primeira entrada (superior) com a segunda entrada (inferior). Inner Join é um operador lógico. |
|
| Inserir | O operador Insert insere cada linha de sua entrada no objeto especificado no painel Propriedades . O operador físico é o operador Inserção de tabela, Inserção de índice ou Inserção de índice clusterizado . Insert é um operador lógico. |
|
| Varredura inserida | Nos gatilhos, o operador de varredura inserida verifica a tabela inserida . O Insert Scan é um operador lógico e físico. |
|
| Intrínseco | O operador Intrínseco invoca uma função Transact-SQL interna. Intrínseco é um elemento da linguagem. |
|
| Iterador | O ícone catchall do iterador é exibido quando um ícone adequado para o iterador não pode ser encontrado pela lógica que produz showplans gráficos. O ícone catchall não indica necessariamente uma condição de erro. | |
| Pesquisa de chaves | O operador Pesquisa de Chave é uma pesquisa de marcadores em uma tabela com um índice clusterizado. O painel Propriedades contém o nome do índice clusterizado e a chave de clustering usada para procurar a linha no índice clusterizado.
A Pesquisa de Chaves é sempre acompanhada por um operador de Loops Aninhados . Se a WITH PREFETCH cláusula aparecer no painel Propriedades , o processador de consultas determinou que é ideal usar a pré-busca assíncrona (read-ahead) ao procurar marcadores no índice clusterizado.O uso de um operador de Pesquisa de Chave em um plano de consulta indica que a consulta pode se beneficiar do ajuste de desempenho. Por exemplo, o desempenho da consulta pode ser melhorado adicionando um índice de cobertura. |
|
| Conjunto de chaves | O operador Keyset usa um cursor que pode ver atualizações, mas não inserções, feitas por outras pessoas. | |
| Elemento de linguagem | O ícone catchall Language Element é exibido quando um ícone adequado para o iterador não pode ser encontrado pela lógica que produz showplans gráficos. O ícone catchall não indica necessariamente uma condição de erro. | |
| Carretel preguiçoso | O operador lógico Lazy Spool armazena cada linha de sua entrada em um objeto temporário oculto armazenado no banco de dados tempdb. Se o operador for rebobinado (por exemplo, por um operador Nested Loops ), mas nenhuma religação for necessária, os dados spooled serão usados em vez de verificar novamente a entrada. Se a religação for necessária, os dados spooled serão descartados e o objeto spool será reconstruído examinando novamente a entrada (rebound). O operador Lazy Spool constrói seu arquivo de spool de uma maneira "preguiçosa", ou seja, cada vez que o operador pai do spool pede uma linha, o operador de spool obtém uma linha de seu operador de entrada e a armazena no spool, em vez de consumir todas as linhas de uma só vez. Lazy Spool é um operador lógico. |
|
| Nenhum | Esquerda Anti Semi Junte-se | O operador Left Anti Semi Join retorna cada linha da primeira entrada (superior) quando não há nenhuma linha correspondente na segunda entrada (inferior). Se não existir nenhum predicado de junção no painel Propriedades , cada linha será uma linha correspondente. Left Anti Semi Join é um operador lógico. |
| Nenhum | Junção externa esquerda | O operador Left Outer Join retorna cada linha que satisfaz o predicado de junção da primeira entrada (superior) com a segunda entrada (inferior). Ele também retorna quaisquer linhas da primeira entrada que não tenham linhas correspondentes na segunda entrada. As linhas não correspondentes na segunda entrada são retornadas como valores nulos. Se não existir nenhum predicado de junção no painel Propriedades , cada linha será uma linha correspondente. Left Outer Join é um operador lógico. |
| Nenhum | Semi Adesão Esquerda | O operador Left Semi Join retorna cada linha da primeira entrada (superior) quando há uma linha correspondente na segunda entrada (inferior). Se não existir nenhum predicado de junção no painel Propriedades , cada linha será uma linha correspondente. Left Semi Join é um operador lógico. |
| Varredura de linha de log | O operador Log Row Scan verifica o log de transações. O Log Row Scan é um operador lógico e físico. |
|
| Intervalo de mesclagem | O operador Merge Interval mescla vários intervalos (potencialmente sobrepostos) para produzir intervalos mínimos e não sobrepostos que são usados para buscar entradas de índice. Esse operador normalmente aparece antes de um ou mais operadores Compute Scalar sobre operadores Constant Scan , que constroem os intervalos (representados como colunas em uma linha) que esse operador mescla. Merge Interval é um operador lógico e físico. |
|
| Mesclar Ingresso | O operador Merge Join executa a junção interna, a junção externa esquerda, a semijunção esquerda, a junção anti semi esquerda, a junção externa direita, a semijunção direita, a junção anti semi direita e as operações lógicas de união. No painel Propriedades , o operador Merge Join contém um predicado de mesclagem se a operação estiver executando uma junção um-para-muitos, ou um predicado de mesclagem muitos-para-muitos se a operação estiver executando uma junção muitos-para-muitos. O painel Propriedades também inclui uma lista separada por vírgulas de colunas usadas para executar a operação. O operador Merge Join requer duas entradas classificadas em suas respetivas colunas, possivelmente inserindo operações de classificação explícitas no plano de consulta. A junção de mesclagem é particularmente eficaz se a classificação explícita não for necessária, por exemplo, se houver um índice de árvore B adequado no banco de dados ou se a ordem de classificação puder ser explorada para várias operações, como uma junção de mesclagem e agrupamento com rollup. Merge Join é um operador físico. Para obter mais informações, consulte Noções básicas sobre associações de mesclagem. |
|
| Loops aninhados | O operador Nested Loops executa as operações lógicas de junção interna, junção externa esquerda, semijunção esquerda e anti-semijunção esquerda. As junções de loop aninhadas executam uma pesquisa na tabela interna para cada linha da tabela externa, normalmente usando um índice. O processador de consultas decide, com base nos custos previstos, se classifica a entrada externa para melhorar a localização das pesquisas no índice sobre a entrada interna. Todas as linhas que satisfazem o predicado (opcional) no painel Propriedades são retornadas conforme aplicável, com base na operação lógica que está sendo executada. Quando o OPTIMIZED atributo é definido como True, isso significa que um Loops Aninhados Otimizados (ou Batch Sort) é usado.Nested Loops é um operador físico. Para obter mais informações, consulte Noções básicas sobre associações de loops aninhados. |
|
| Nenhum | Inserção de índice online | O operador Online Index Insert indica que uma operação de índice (criar, alterar ou descartar) é executada online. Ou seja, os dados da tabela subjacente permanecem disponíveis para os usuários durante a operação de índice. Online Index Insert é um operador físico. |
| Nenhum | Paralelismo | O operador Parallelism (ou Exchange Iterator) executa as operações lógicas de distribuição, coleta de fluxos e reparticionamento de fluxos. O painel Propriedades pode conter um predicado de colunas de partição com uma lista separada por vírgulas das colunas que estão sendo particionadas. O painel Propriedades também pode conter uma ordem por predicado, listando as colunas para preservar a ordem de classificação durante o particionamento. Observação: Se uma consulta tiver sido compilada como uma consulta paralela, mas em tempo de execução for executada como uma consulta serial, a saída do plano de execução gerada por SET STATISTICS XML ou usando a opção Incluir Plano de Execução Real no SQL Server Management Studio não conterá o RunTimeInformation elemento para o operador Parallelism . Na SET STATISTICS PROFILE saída, as contagens de linhas reais e o número real de execuções exibem zeros para o operador Parallelism . Quando qualquer condição ocorre, isso significa que o operador Parallelism foi usado apenas durante a compilação da consulta e não no plano de consulta de tempo de execução. Às vezes, os planos de consulta paralela são executados em série se houver uma alta carga simultânea no servidor.O paralelismo é um operador físico. Para obter mais informações sobre o operador de paralelismo, consulte O operador de paralelismo. |
| Verificação da tabela de parâmetros | O operador Parameter Table Scan verifica uma tabela que está atuando como um parâmetro na consulta atual. Normalmente, isso é usado para INSERT consultas dentro de um procedimento armazenado.Parameter Table Scan é um operador lógico e físico. |
|
| Nenhum | Agregado parcial |
O agregado parcial é usado em planos paralelos. Ele aplica uma função de agregação ao maior número possível de linhas de entrada para que a gravação em disco (conhecida como "vazamento") não seja necessária.
Hash Match é o único operador físico (iterador) que implementa a agregação parcial. Agregado parcial é um operador lógico. |
| Consulta de População | O operador Consulta de População preenche a tabela de trabalho de um cursor quando o cursor é aberto. | |
| Atualizar consulta | O operador Refresh Query busca dados atuais para linhas no buffer de busca. | |
| Exclusão remota | O operador Remote Delete exclui as linhas de entrada de um objeto remoto. Remote Delete é um operador lógico e físico. |
|
| Varredura de índice remota | O operador Remote Index Scan verifica o índice remoto especificado no painel Propriedades . O Remote Index Scan é um operador lógico e físico. |
|
| Busca remota de índice | O operador Remote Index Seek usa a capacidade de busca de um objeto de índice remoto para recuperar linhas. O painel Propriedades contém o nome do índice remoto que está sendo usado e o predicado de busca . Remote Index Seek é um operador lógico e físico. |
|
| Inserção remota | O operador Remote Insert insere as linhas de entrada em um objeto remoto. Remote Insert é um operador lógico e físico. |
|
| Consulta remota | O operador de Consulta Remota envia uma consulta a uma fonte remota. O texto da consulta enviada ao servidor remoto aparece no painel Propriedades . O Remote Query é um operador lógico e físico. |
|
| Varredura remota | O operador Remote Scan verifica um objeto remoto. O nome do objeto remoto aparece no painel Propriedades . O Remote Scan é um operador lógico e físico. |
|
| Atualização remota | O operador Remote Update atualiza as linhas de entrada em um objeto remoto. A Atualização Remota é um operador lógico e físico. |
|
| Fluxos de repartição | O operador Repartition Streams (ou iterador de troca) consome vários fluxos e produz vários fluxos de registros. O conteúdo e o formato do registo não são alterados. Se o otimizador de consulta usar um filtro de bitmap, o número de linhas no fluxo de saída será reduzido. Cada registro de um fluxo de entrada é colocado em um fluxo de saída. Se este operador estiver preservando a ordem, todos os fluxos de entrada devem ser ordenados e mesclados em vários fluxos de saída ordenados. Se a saída for particionada, o painel Propriedades conterá um predicado de colunas de partição e as colunas de particionamento. Se a saída for ordenada, o painel Propriedades conterá uma ordem por predicado e as colunas que estão sendo ordenadas. O operador é usado apenas em planos de consulta paralelos. Repartition Streams é um operador lógico. |
|
| resultado | O operador Result são os dados retornados no final de um plano de consulta. Este é geralmente o elemento raiz de um showplan. O resultado é um elemento linguístico. |
|
| Pesquisa de RID |
A Pesquisa de RID é uma pesquisa de marcadores em uma pilha usando um identificador de linha fornecido (RID). O painel Propriedades contém o rótulo de indicador usado para procurar a linha na tabela e o nome da tabela na qual a linha é pesquisada.
RID Lookup é sempre acompanhado por um NESTED LOOP JOINarquivo .RID Lookup é um operador físico. Para obter mais informações sobre pesquisas de marcadores, consulte Ler comprometido e Pesquisa de favoritos. |
|
| Nenhum | Direito Anti Semi Junte-se | O operador Anti Semi Join direito produz cada linha da segunda entrada (inferior) quando uma linha correspondente na primeira entrada (superior) não existe. Uma linha correspondente é definida como uma linha que satisfaz o predicado no painel Propriedades (se nenhum predicado existir, cada linha é uma linha correspondente). Right Anti Semi Join é um operador lógico. |
| Nenhum | Junção externa direita | O operador Right Outer Join retorna cada linha que satisfaz a junção da segunda entrada (inferior) com cada linha correspondente da primeira entrada (superior). Ele também retorna todas as linhas da segunda entrada que não tinham linhas correspondentes na primeira entrada, unidas com NULL. Se não existir nenhum predicado de junção no painel Propriedades , cada linha será uma linha correspondente.Right Outer Join é um operador lógico. |
| Nenhum | Direito Semi Junte-se | O operador Right Semi Join retorna cada linha da segunda entrada (inferior) quando há uma linha correspondente na primeira entrada (superior). Se não existir nenhum predicado de junção no painel Propriedades , cada linha será uma linha correspondente. Right Semi Join é um operador lógico. |
| Spool de contagem de linhas | O operador Spool de Contagem de Linhas verifica a entrada, contando quantas linhas estão presentes e retornando o mesmo número de linhas sem nenhum dado nelas. Este operador é usado quando é importante verificar a existência de linhas, em vez dos dados contidos nas linhas. Por exemplo, se um operador de Loops Aninhados executar uma operação de semijunção esquerda e o predicado de junção se aplicar à entrada interna, um spool de contagem de linhas poderá ser colocado na parte superior da entrada interna do operador de Loops Aninhados . Em seguida, o operador Nested Loops pode determinar quantas linhas são saídas pelo spool de contagem de linhas (porque os dados reais do lado interno não são necessários) para determinar se a linha externa deve ser retornada. Row Count Spool é um operador físico. |
|
| Nenhum | Repartição de segmento | Em um plano de consulta paralelo, às vezes há regiões conceituais de iteradores. Todos os iteradores dentro de tal região podem ser executados por threads paralelos. As próprias regiões devem ser executadas em série. Alguns dos iteradores de paralelismo dentro de uma região individual são chamados de partição de ramificação. O iterador de paralelismo no limite de duas dessas regiões é chamado de partição de segmento. Branch Repartition e Segment Repartition são operadores lógicos. |
| Segmento | O operador Segment divide o conjunto de entrada em segmentos com base no valor de uma ou mais colunas. Essas colunas são mostradas como argumentos no operador Segment . A entrada é classificada por estas colunas. O operador usa a coluna de segmento para marcar a primeira linha de cada segmento. Segmento é um operador físico e lógico. |
|
| Projeto Sequência | O operador Sequence Project adiciona colunas para executar cálculos em um conjunto ordenado. Requer a divisão do conjunto de entrada em segmentos com base no valor de uma ou mais colunas. Sequence Project é um operador lógico e físico. |
|
| Sequência | O operador Sequence conduz planos de atualização amplos. Funcionalmente, executa cada entrada em sequência (de cima para baixo). Cada entrada é geralmente uma atualização de um objeto diferente. Ele retorna apenas as linhas que vêm de sua última entrada (inferior). A sequência é um operador lógico e físico. |
|
| Instantâneo | O operador Snapshot cria um cursor que não vê as alterações feitas por outras pessoas. | |
| Sort | O operador Sort classifica todas as linhas de entrada. O painel Propriedades contém uma ordem distinta por predicado se duplicados forem removidos por esta operação, ou uma ordem por predicado com uma lista separada por vírgulas das colunas que estão sendo classificadas. 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.Sort é um operador lógico e físico. |
|
| Divisão | O operador Split é usado para otimizar o processamento de atualizações. Ele divide cada operação de atualização em uma operação de exclusão e uma operação de inserção. Split é um operador lógico e físico. |
|
| Carretel | O operador Spool salva um resultado de consulta intermediário no banco de dados tempdb. | |
| Stream Agregado | O operador Stream Aggregate agrupa linhas por uma ou mais colunas e, em seguida, calcula uma ou mais expressões agregadas retornadas pela consulta. A saída deste operador pode ser referenciada por operadores posteriores na consulta, retornada ao cliente ou ambas. O operador Stream Aggregate requer entrada ordenada pelas colunas dentro de seus grupos. O otimizador usa um operador Sort antes desse operador se os dados ainda não estiverem classificados devido a um operador Sort anterior ou devido a uma busca ou verificação de índice ordenada.
SHOWPLAN_ALL Na instrução ou no plano de execução gráfica no SQL Server Management Studio, as colunas no grupo por predicado são listadas no painel Propriedades e as expressões agregadas são listadas na coluna Valores Definidos.Stream Aggregate é um operador físico. |
|
| Mudar |
Switch é um tipo especial de iterador de concatenação que tem n entradas. Uma expressão é associada a cada operador de Switch . Dependendo do valor de retorno da expressão (entre 0 e n-1), o Switch copia o fluxo de entrada apropriado para o fluxo de saída. Um uso do Switch é implementar planos de consulta envolvendo cursores de avanço rápido com determinados operadores, como o TOP operador.Switch é um operador lógico e físico. |
|
| Exclusão de tabela | O operador Exclusão de Tabela exclui linhas da tabela especificada no painel Propriedades do plano de execução da consulta. Table Delete é um operador físico. |
|
| Inserção da tabela | O operador Inserção de Tabela insere linhas de sua entrada na tabela especificada no painel Propriedades do plano de execução da consulta. O painel Propriedades também contém um predicado definido , que indica o valor para o qual cada coluna está definida. Se Table Insert não tiver filhos para inserir valores, a linha inserida será retirada do próprio operador Insert. Table Insert é um operador físico. |
|
| Mesclagem de tabela | O operador Table Merge aplica um fluxo de dados de mesclagem a um heap. O operador exclui, atualiza ou insere linhas na tabela especificada no painel Propriedades do operador. A operação real executada depende do valor de tempo de execução da propriedade ActionColumn Table Merge é um operador físico. |
|
| Varredura de tabela | O operador Verificação de Tabela recupera todas as linhas da tabela especificada no painel Propriedades do plano de execução da consulta. Se um predicado where aparecer no painel Propriedades , somente as linhas que satisfazem o predicado serão retornadas. Table Scan é um operador lógico e físico. |
|
| Carretel de mesa | O operador Table Spool verifica a entrada e coloca uma cópia de cada linha em uma tabela de spool oculta que é armazenada no banco de dados tempdb e existente apenas durante o tempo de vida da consulta. Se o operador for rebobinado (por exemplo, por um operador Nested Loops ), mas nenhuma religação for necessária, os dados spooled serão usados em vez de verificar novamente a entrada. Table Spool é um operador físico. |
|
| Atualização da tabela | O operador Atualização de Tabela atualiza as linhas de entrada na tabela especificada no painel Propriedades do plano de execução da consulta. O predicado definido determina o valor de cada coluna atualizada. Esses valores podem ser referenciados SET na cláusula ou em outro lugar dentro deste operador e em outro lugar dentro desta consulta.Atualização de tabela é um operador físico. |
|
| Função com valor de tabela | O operador Função com valor de tabela avalia uma função com valor de tabela (Transact-SQL ou CLR) e armazena as linhas resultantes no banco de dados tempdb. Quando os iteradores pai solicitam as linhas, a Função com valor de tabela retorna as linhas de tempdb.Consultas com chamadas para funções com valor de tabela geram planos de consulta com o iterador Função com valor de tabela . A função com valor de tabela pode ser avaliada com diferentes valores de parâmetro: - Função com valor de tabela O leitor XML insere um BLOB XML como um parâmetro e produz um conjunto de linhas que representa nós XML na ordem do documento XML. Outros parâmetros de entrada podem restringir nós XML retornados a um subconjunto de documento XML. - Função com valor de tabela O leitor XML com filtro XPath é um tipo especial de função com valor de tabela do leitor XML que restringe a saída a nós XML que satisfazem uma expressão XPath. Função com valor de tabela é um operador lógico e físico. |
|
| Início | O operador Top verifica a entrada, retornando apenas o primeiro número especificado ou porcentagem de linhas, possivelmente com base em uma ordem de classificação. O painel Propriedades pode conter uma lista das colunas que estão sendo verificadas quanto a vinculações. Nos planos de atualização, o operador Top é usado para impor limites de contagem de linhas. Top é um operador lógico e físico. |
|
| Nenhum | Top N Ordenar | Top N Sort é semelhante ao iterador Sort , exceto que apenas as primeiras linhas N são necessárias, e não todo o conjunto de resultados. Para valores pequenos de N, o mecanismo de execução de consulta do SQL Server tenta executar toda a operação de classificação na memória. Para valores grandes de N, o mecanismo de execução de consulta recorre ao método mais genérico de classificação para o qual N não é um parâmetro. |
| UDX | Operadores estendidos (UDX) implementam uma das muitas operações XQuery e XPath no SQL Server. - O operador estendido (UDX) FOR XML é usado para serializar o conjunto de linhas relacionais que ele insere na representação XML em uma única coluna BLOB em uma única linha de saída. É um operador de agregação XML sensível a ordens.- Operador estendido (UDX) XML SERIALIZER é um operador de agregação XML sensível a ordens. Ele insere linhas que representam nós XML ou escalares XQuery na ordem do documento XML e produz um BLOB XML serializado em uma única coluna XML em uma única linha de saída.- Operador estendido (UDX) XML FRAGMENT SERIALIZER é um tipo especial de que é usado para processar linhas de entrada que representam fragmentos XML que estão sendo inseridos na extensão de modificação de XML SERIALIZER dados de inserção XQuery.- O operador estendido (UDX) XQUERY STRING avalia o valor da cadeia de caracteres XQuery das linhas de entrada que representam nós XML. É um operador de agregação de cadeia de caracteres sensível à ordem. Ele gera uma linha com colunas que representam o escalar XQuery que contém o valor da cadeia de caracteres da entrada.- Operador estendido (UDX) XQUERY LIST DECOMPOSER é um operador de decomposição de lista XQuery. Para cada linha de entrada que representa um nó XML, ela produz uma ou mais linhas, cada uma representando XQuery escalar contendo um valor de elemento de lista se a entrada for do tipo de lista XSD.- O operador estendido (UDX) XQUERY DATA avalia a função XQuery fn:data() na entrada que representa nós XML. É um operador de agregação de cadeia de caracteres sensível à ordem. Ele gera uma linha com colunas que representam o escalar XQuery que contém o resultado de fn:data().- O operador XQUERY CONTAINS estendido avalia a função XQuery fn:contains() na entrada que representa nós XML. É um operador de agregação de cadeia de caracteres sensível à ordem. Ele gera uma linha com colunas que representam o escalar XQuery que contém o resultado de fn:contains().- O operador UPDATE XML NODE estendido atualiza o nó XML no XQuery substituindo a extensão de modificação de dados no modify() método no tipo XML.Os operadores UDX são operadores lógicos e físicos. |
|
| União | O operador da União verifica várias entradas, emitindo cada linha digitalizada e removendo duplicados. A União é um operador lógico. |
|
| Update | O operador Update atualiza cada linha a partir de sua entrada no objeto especificado no painel Propriedades do plano de execução da consulta. Update é um operador lógico. O operador físico é Atualização de Tabela, Atualização de Índice ou Atualização de Índice Clusterizado. |
|
| Carretel de janela | O operador Window Spool expande cada linha para o conjunto de linhas que representa a janela associada a ela. Em uma consulta, a OVER cláusula define a janela dentro de um conjunto de resultados de consulta e uma função de janela calcula um valor para cada linha na janela.Window Spool é um operador lógico e físico. |
Observação
A documentação usa o termo árvore B geralmente em referência a índices. Em índices de armazenamento em linha, o Mecanismo de Base de Dados implementa uma árvore B+. Isso não se aplica a índices de armazenamento em colunas ou a índices em tabelas com otimização de memória. Para obter mais informações, consulte o guia de arquitetura e design de índices do SQL Server e Azure SQL .