EXPLAIN se une a los planes de consultas de Amazon Redshift - AWS Guía prescriptiva

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.

EXPLAIN se une a los planes de consultas de Amazon Redshift

Amazon Redshift utiliza distintos operadores de unión para recuperar datos en función de lo siguiente:

  • El diseño físico de las tablas que se van a unir

  • La estructura de la consulta

  • La ubicación de los datos necesarios para la unión

  • Los requisitos específicos de la consulta en sí

Los siguientes tipos de uniones se utilizan habitualmente en Amazon Redshift:

  • Bucle anidado: un bucle anidado se produce cuando no se puede crear una tabla hash entre las dos tablas. Los bucles anidados se utilizan principalmente para uniones cruzadas (productos cartesianos) y algunas uniones desiguales. Esto requerirá que la base de datos compare todos los valores de la tabla de la izquierda con todos los valores de la tabla de la derecha. La complejidad de una unión de bucles anidados es «cuadrática», es decir, se deben realizar aproximadamente N*N (o N²) operaciones diferentes para procesar la unión. El bucle anidado es el tipo de unión menos óptimo.

  • Combinación por hash: en una unión por hash, las condiciones de unión no son perfectas entre sí, pero Amazon Redshift puede gestionar el uso de uniones por hash con un poco de trabajo. Una unión por hash suele ser más rápida que una unión por bucle anidado. Amazon Redshift examina ambas tablas y, entre ellas, crea una tabla hash, que es como una tabla de consulta situada en el centro de las tablas. Por ejemplo, los operadores hash de combinación y hash se utilizan al unir tablas en las que las columnas de unión no son a la vez claves de distribución y claves de clasificación.

  • Combinación por fusión: una combinación por fusión suele ser la combinación más rápida y se usa para uniones internas y externas. En una unión por fusión, ambas tablas son perfectas la una para la otra. Esto significa que la condición de unión de cada lado es la clave de distribución y la clave de clasificación. Ambas tablas se alinean perfectamente sin necesidad de ajustes. Tenga en cuenta que las filas no ordenadas de las tablas deben ocupar menos del 20 por ciento de las tablas de unión. Para ver el porcentaje de filas sin ordenar, consulte la tabla del sistema SVV_TABLE_INFO. Merge join no se utiliza para las combinaciones totales.