Combinaciones con EXPLAIN para 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.

Combinaciones con EXPLAIN para los planes de consultas de Amazon Redshift

Amazon Redshift utiliza distintos operadores de combinació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 que se necesitan para la combinación

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

Amazon Redshift suele utilizar los siguientes tipos de combinación:

  • Bucle anidado: los bucles anidados se producen cuando no se puede crear una tabla con hash entre las dos tablas. Los bucles anidados se utilizan principalmente para las combinaciones cruzadas (productos cartesianos) y para algunas combinaciones de desigualdades. 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 combinación de bucles anidados es “cuadrática”, es decir, se deben realizar aproximadamente N*N (o N²) operaciones diferentes para procesar la combinación. El bucle anidado es el tipo de combinación menos óptimo.

  • Combinación por hash: en una combinación por hash, las condiciones de combinación no son perfectas entre sí, pero Amazon Redshift puede administrar el uso de combinaciones por hash con un poco de trabajo. Una combinación por hash suele ser más rápida que una combinación con bucle anidado. Amazon Redshift examina ambas tablas y, entre ellas, crea una tabla con hash, que es como una tabla de consulta situada entre las tablas. Por ejemplo, los operadores de hash y de combinación por hash se utilizan 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.

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