Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Operadores EXPLAIN para los planes de consultas de Amazon Redshift
En esta sección, se describen brevemente los operadores que ven con mayor frecuencia en la salida de EXPLAIN.
Examen secuencial
El operador de examen secuencial (Seq Scan) indica el examen de una tabla. Seq Scan examina cada columna de la tabla de manera secuencial, de principio a fin, y evalúa las restricciones de la consulta (en la cláusula WHERE) para cada una de las filas.
Operadores de combinación
Amazon Redshift selecciona los operadores de combinación en función del diseño físico de las tablas que se combinarán, la ubicación de los datos que se necesitan para la combinación y los requisitos específicos de la propia consulta.
Bucle anidado
Los bucles anidados se utilizan principalmente para las combinaciones cruzadas. Las combinaciones cruzadas son combinaciones sin una condición de combinación que dan lugar a un producto cartesiano de dos tablas. Por lo general, los bucles anidados se ejecutan como combinaciones de bucles anidados, que son los tipos de combinación posibles más lentos. Si hay un bucle anidado, es posible que vea un evento de alerta de bucle anidado en la vista STL_ALERT_EVENT_LOG. Puede ejecutar la siguiente consulta para identificar las consultas que tienen bucles anidados:
select q.query, trim(q.querytxt) as sql_query, q.starttime from stl_query q join stl_alert_event_log l on l.query = q.query and l.event like 'Nested Loop Join in the query plan%' order by q.starttime desc;
Combinación por hash y hash
Los operadores de combinación por hash y hash suelen ser más rápidos que una combinación con bucle anidado. Estos operadores se utilizan para las combinaciones internas y las combinaciones externas izquierda y derecha. Puede usar los operadores de hash y de combinación por hash para combinar tablas en las que las columnas de combinación no son claves de distribución ni claves de clasificación al mismo tiempo. El operador de hash crea la tabla con hash para la tabla interna de la combinación. El operador de combinación por hash lee la tabla hash externa, aplica la función hash a la columna de combinación y encuentra coincidencias en la tabla con hash interna.
Combinación de fusión
El operador de combinación por hash suele ser la combinación más rápida y se utiliza para las combinaciones internas y externas. La combinación por fusión no se utiliza para las combinaciones totales. Puede usar una combinación por fusión para combinar tablas en las que las columnas de combinación son claves de distribución y claves de clasificación al mismo tiempo, y cuando menos del 20 % de las tablas de combinación está desordenado. El operador de combinación por fusión lee dos tablas ordenadas y encuentra las filas que coinciden. Para ver el porcentaje de filas sin ordenar, consulte la tabla de sistema SVV_TABLE_INFO.
Operadores de agregación
El plan de consulta utiliza los siguientes operadores en las consultas que implican funciones de agregación y operaciones GROUP BY:
-
Aggregate: operador para las funciones de agregación escalar, como
AVGySUM. -
HashAggregate: operador para las funciones de agregación agrupadas desordenadas.
-
GroupAggregate: operador para las funciones de agregación agrupadas ordenadas.
Operadores de ordenación
El plan de consulta utiliza los siguientes operadores cuando las consultas tienen que ordenar o fusionar conjuntos de resultados:
-
Sort: evalúa la cláusula
ORDER BYy otras operaciones de ordenación, como las que se necesitan en las consultas y combinacionesUNION, en las consultasSELECT DISTINCTy en las funciones de ventana. -
Merge: produce resultados ordenados finales conforme a los resultados intermedios ordenados que se derivan de las operaciones en paralelo.
Operadores UNION, INTERSECT y EXCEPT
El plan de consulta utiliza los siguientes operadores en las consultas que implican operaciones de conjunto con UNION, INTERSECT y EXCEPT:
-
Subquery: se utiliza para ejecutar consultas
UNION. -
Hash Intersect Distinct: se utiliza para ejecutar consultas
INTERSECT. -
SetOp Except: se utiliza para ejecutar consultas
EXCEPT(oMINUS).
Otros operadores
Los siguientes operadores también aparecen con frecuencia en la salida EXPLAIN para las consultas rutinarias:
-
Unique: elimina los duplicados de las consultas
SELECT DISTINCTyUNION. -
Limit: procesa la cláusula
LIMIT. -
Window: ejecuta funciones de ventana.
-
Result: ejecuta funciones escalares que no implican el acceso a ninguna tabla.
-
Subplan: se utiliza para determinadas subconsultas.
-
Network: envía los resultados intermedios al nodo principal para seguir trabajando con ellos.
-
Materialize: guarda las filas para ingresarlas en combinaciones de bucle anidado y en algunas combinaciones por fusión.