Operadores de execução de consulta

Esta página descreve os operadores usados nos planos de execução de consultas do Spanner. Para saber como recuperar um plano de execução de uma consulta específica usando o console Google Cloud , consulte Noções básicas sobre como o Spanner executa consultas.

Os planos de execução são compatíveis com bancos de dados do dialeto GoogleSQL e do dialeto PostgreSQL.

Mapeamento de construções SQL para operadores de execução de consultas

O mapeamento exato entre construções SQL e operadores de execução de consultas depende da otimização da consulta. A tabela a seguir mostra alguns mapeamentos comuns:

SQL Operador de execução de consulta
Referência da tabela Verificação de tabela, verificação de índice
WHERE Filter Scan, Filter
GROUP BY Aggregate
Função escalar (como ISNULL) Computação
Função de agregação (como SUM) Aggregate
JOIN Qualquer operador de junção. Consulte Junções.
Subconsulta Subconsulta escalar ou de matriz
LIMIT Limite, Limite de classificação
ORDER BY Ordenar, Limite de classificação

Operadores de execução de consulta

Esta seção lista todos os operadores de execução de consulta que podem compor um plano de execução de consulta no Spanner.

Operadores folha

Operadores que não têm filhos.

Nome Resumo
Array unnest Nivela uma matriz de entrada em linhas de elementos.
Generate relation Retorna zero ou mais linhas.
Unit relation Retorna uma linha.
Empty relation Não retorna nenhuma linha.
Scan Verifica uma fonte de linhas e as retorna.
Filter scan Funciona com a verificação para reduzir o número de linhas lidas no banco de dados.

Operadores unary

Operadores que têm um único filho relacional.

Nome Resumo
Aggregate Implementa instruções SQL GROUP BY e funções de agregação.
Apply mutations Aplica as mutações de uma instrução da linguagem de manipulação de dados (DML) à tabela.
Create batch Reúne as linhas de entrada em uma sequência.
Computação Produz saída lendo as linhas de entrada e adicionando uma ou mais colunas extras que são computadas usando expressões escalares.
Compute struct Cria uma variável para uma estrutura que contém campos para cada uma das colunas de entrada.
DataBlockToRowAdapter Adapta um método de execução orientado a lote para um método de execução orientado a linha.
Filtrar Lê todas as linhas da entrada, aplica um predicado escalar a cada linha e retorna apenas as linhas que satisfazem o predicado.
Limite Restringe o número de linhas retornadas.
União de divisão local Encontra divisões de tabela armazenadas no servidor local, executa uma subconsulta em cada divisão e cria uma união que combina todos os resultados.
Atribuição de ID aleatório Produz saída lendo as linhas de entrada e adicionando um número aleatório a cada linha.
RowToDataBlockAdapter Adapta um método de execução orientado a linhas para um método de execução orientado a lotes.
Serialize result Serializa cada linha do resultado final da consulta para retorno ao cliente.
Ordenar Lê as linhas de entrada, as ordena por colunas e retorna os resultados classificados.
Função com valor de tabela (TVF) Produz saída lendo as linhas de entrada e aplicando a função especificada.
Union input Retorna resultados para um operador "union all".

Operadores binários

Operadores que têm dois filhos relacionais.

Nome Resumo
Aplicar junção Aplica cada linha do lado "input" ao lado "map" usando um método de aplicação.
Hash join Lê linhas da entrada marcadas como "build" e as insere em uma tabela de hash com base em uma condição de junção.
Mesclar participação Consome os dois fluxos de entrada simultaneamente e gera linhas quando a condição de junção é atendida.
Recursive union Realiza uma união de duas entradas, uma que representa um caso base e outra que representa um caso recursivo.

Operadores N-ary

Operadores que têm mais de dois filhos relacionais.

Nome Resumo
Union all Combina todos os conjuntos de linhas dos filhos sem remover duplicatas.

Operadores distribuídos

Operadores que são executados em vários servidores.

Nome Resumo
Distributed union Divide conceitualmente uma ou mais tabelas em várias divisões, avalia remotamente uma subconsulta de modo independente em cada divisão e, em seguida, une todos os resultados.
Distributed apply Estende o operador de junção de aplicação executando em vários servidores.
União de mesclagem distribuída Distribui uma consulta em vários servidores remotos e combina os resultados para produzir um resultado classificado.
Junção do hash de transmissão push Implementa junções SQL usando uma junção hash distribuída.

Subconsultas escalares

Subexpressões SQL que retornam um único valor escalar.

Nome Resumo
Subconsultas escalares Subexpressões SQL que retornam um único valor escalar.

Subconsultas de matriz

Subexpressões SQL que retornam uma matriz.

Nome Resumo
Subconsultas de matriz Subexpressões SQL que retornam uma matriz.

Construtor de estrutura

Um operador que cria uma estrutura (uma coleção de campos) para linhas resultantes de uma operação de computação.

Nome Resumo
Construtor de struct Um operador que cria uma estrutura (uma coleção de campos) para linhas resultantes de uma operação de computação.