Operadores de ejecución de consultas

En esta página, se describen los operadores que se usan en los planes de ejecución de consultas de Spanner. Si quieres obtener información para recuperar un plan de ejecución para una consulta específica con la consola de Google Cloud , consulta Comprende cómo Spanner ejecuta consultas.

Los planes de ejecución admiten bases de datos con dialecto de GoogleSQL y bases de datos con dialecto de PostgreSQL.

Cómo mapear construcciones de SQL a operadores de ejecución de consultas

La asignación exacta entre las construcciones de SQL y los operadores de ejecución de consultas depende de la optimización de la consulta. En la siguiente tabla, se muestran algunas asignaciones comunes:

SQL Operador de ejecución de consultas
Referencia de la tabla Análisis de tabla y análisis de índice
WHERE Análisis de filtro, Filtro
GROUP BY Agregación
Función escalar (como ISNULL) Procesamiento
Función de agregación (como SUM) Agregación
JOIN Cualquier operador de unión (consulta Uniones)
Subconsulta Subconsulta escalar o de matriz
LIMIT Límite, Límite de ordenamiento
ORDER BY Ordenar, Límite de ordenamiento

Operadores de ejecución de consultas

En esta sección, se enumeran todos los operadores de ejecución de consultas que pueden formar un plan de ejecución de consultas en Spanner.

Operadores de hoja

Operadores que no tienen operadores secundarios.

Nombre Resumen
Arreglo unnest Compacta un array de entrada en filas de elementos.
Relación de generación Devuelve cero o más filas.
Relación de unidad Devuelve una fila.
Relación vacía No devuelve filas.
Análisis Analiza una fuente de filas y las muestra.
Análisis de filtro Funciona junto con el análisis para reducir la cantidad de filas leídas de la base de datos.

Operadores unarios

Operadores que tienen un solo operador secundario relacional.

Nombre Resumen
Agregación Implementa instrucciones de SQL GROUP BY y funciones de agregación.
Aplicación de mutaciones Aplica las mutaciones de una declaración del lenguaje de manipulación de datos (DML) a la tabla.
Creación por lotes Agrupa por lotes sus filas de entrada en una secuencia.
Procesamiento Produce resultados leyendo sus filas de entrada y agregando una o más columnas adicionales que se calculan con expresiones escalares.
Estructura de procesamiento Crea una variable para una estructura que contiene campos para cada una de las columnas de entrada.
DataBlockToRowAdapter Adapta un método de ejecución orientado a lotes a un método de ejecución orientado a filas.
Filtro Lee todas las filas de su entrada, aplica un predicado escalar en cada una y, luego, solo muestra las filas que satisfacen el predicado.
Límite Restringe la cantidad de filas que se devuelven.
Unión de división local Busca divisiones de tablas almacenadas en el servidor local, ejecuta una subconsulta en cada división y, luego, crea una unión que combina todos los resultados.
Asignación de ID aleatorio Produce resultados leyendo sus filas de entrada y agregando un número aleatorio a cada fila.
RowToDataBlockAdapter Adapta un método de ejecución orientado a filas a un método de ejecución orientado a lotes.
Serialización de resultados Serializa cada fila del resultado final de la consulta para mostrarla al cliente.
Orden Lee las filas de entrada, las ordena por columnas y, luego, muestra los resultados ordenados.
Función con valores de tabla (TVF) Produce resultados leyendo sus filas de entrada y aplicando la función especificada.
Entrada de la unión Devuelve los resultados a un operador UNION ALL.

Operadores binarios

Son los operadores que tienen dos operadores secundarios relacionales.

Nombre Resumen
Aplicar join Aplica cada fila del lado de entrada al lado del mapa con un método de aplicación.
Unión hash Lee las filas de la entrada marcadas como compilación y las inserta en una tabla hash basada en una condición de unión.
Combinación por fusión Consume ambas transmisiones de entrada de forma simultánea y genera filas cuando se satisface la condición de unión.
Unión recursiva Realiza una unión de dos entradas, una que representa un caso base y la otra que representa un caso recursivo.

Operadores N-arios

Operadores que tienen más de dos operadores secundarios relacionales.

Nombre Resumen
Unir todo Combina todos los conjuntos de filas de sus operadores secundarios sin quitar los duplicados.

Operadores distribuidos

Operadores que se ejecutan en varios servidores

Nombre Resumen
Unión distribuida Divide conceptualmente una o más tablas en varias divisiones, evalúa una subconsulta de forma remota e independiente en cada división y, luego, une todos los resultados.
Aplicación distribuida Extiende el operador de unión de aplicación ejecutándose en varios servidores.
Unión de combinación distribuida Distribuye una consulta a varios servidores remotos y, luego, combina los resultados de la consulta para producir un resultado ordenado.
Unión hash de transmisión de envío Implementa uniones de SQL con una unión hash distribuida.

Subconsultas escalares

Son subexpresiones de SQL que devuelven un solo valor escalar.

Nombre Resumen
Subconsultas escalares Son subexpresiones de SQL que devuelven un solo valor escalar.

Subconsultas de arreglos

Subexpresiones de SQL que devuelven un array.

Nombre Resumen
Subconsultas de arrays Subexpresiones de SQL que devuelven un array.

Constructor de estructura

Es un operador que crea una estructura (una colección de campos) para las filas que resultan de una operación de procesamiento.

Nombre Resumen
Constructor de struct Es un operador que crea una estructura (una colección de campos) para las filas que resultan de una operación de procesamiento.