Clave de ordenación intercalada
Una clave de ordenación intercalada le otorga el mismo peso a cada columna o subconjunto de columnas en la clave de ordenación. Si hay distintas consultas que usan diferentes columnas para filtros, puede, por lo general, mejorar el rendimiento de esas consultas utilizando un estilo de ordenación intercalada. Cuando una consulta usa predicados restrictivos en las columnas de ordenación secundarias, la ordenación intercalada mejora considerablemente el rendimiento de la consulta, si se la compara con la ordenación compuesta.
importante
No utilice una clave de ordenación intercalada con atributos monótonamente crecientes, como columnas de identidad, fechas o marcas temporales.
Las mejoras de rendimiento que obtiene al implementar una clave de ordenación intercalada se deben compensar con el aumento de los tiempos de carga y de limpieza.
Las ordenaciones intercaladas son más eficaces con las consultas sumamente selectivas que filtran una o más columnas con clave de ordenación en la cláusula WHERE; por ejemplo, la consulta select
c_name from customer where c_region = 'ASIA'
. Los beneficios de la ordenación intercalada aumentan con la cantidad de columnas ordenadas que están limitadas.
La ordenación intercalada es más eficaz con las tablas grandes. La ordenación se aplica a cada sector. Por lo tanto, una ordenación intercalada resulta más eficaz si una tabla es lo suficientemente grande como para requerir varios bloques de 1 MB por sector. En este caso, el procesador de consultas puede omitir una proporción significativa de los bloques mediante el uso de predicados restrictivos. Para ver la cantidad de bloques que utiliza una tabla, consulte la vista de sistema STV_BLOCKLIST.
Cuando se ordena una sola columna, una ordenación intercalada puede tener un mejor rendimiento que una ordenación compuesta si los valores de la columna tienen un prefijo largo en común. Por ejemplo, los URL, por lo general, comienzan con "http://www". Las claves de ordenación compuesta usan una cantidad limitada de caracteres del prefijo, lo que genera muchas duplicaciones de claves. Las ordenaciones intercaladas utilizan un esquema de compresión interno para los valores de mapas de zonas que les permite discriminar mejor entre valores de columnas que tienen un prefijo largo en común.
Al migrar clústeres aprovisionados de Amazon Redshift a Amazon Redshift sin servidor, Redshift convierte tablas con claves de clasificación intercaladas y DISTSTYLE KEY en claves de clasificación compuestas. El DISTSTYLE no cambia. Para obtener más información sobre los estilos de distribución, consulte Uso de estilos de distribución de datos.
VACUUM REINDEX
A medida que agrega filas a una tabla ordenada que ya tiene datos, el rendimiento puede deteriorarse con el tiempo. Este deterioro ocurre tanto en las ordenaciones compuestas como en las intercaladas, pero tiene mayor efecto en las tablas intercaladas. El comando VACUUM restaura el orden, pero la operación puede tomar más tiempo para las tablas intercaladas porque fusionar datos nuevos intercalados puede implicar modificar cada bloque de datos.
Cuando las tablas se cargan por primera vez, Amazon Redshift analiza la distribución de los valores de las columnas con clave de ordenación y usa la información para intercalar de manera óptima las columnas con clave de ordenación. A medida que una tabla aumenta, la distribución de los valores de las columnas con clave de ordenación puede variar o generar un sesgo, en especial con las columnas de fecha o de marca temporal. Si el sesgo es demasiado grande, puede afectar el rendimiento. Para volver a analizar las claves de ordenación y restaurar el rendimiento, ejecute el comando VACUUM con la palabra clave REINDEX. Como el comando VACUUM REINDEX debe hacer un análisis adicional sobre los datos, puede tardar más que un comando VACUUM estándar para las tablas intercaladas. Para ver información acerca del sesgo de distribución de claves y del tiempo de la última reindexación, consulte la vista de sistema SVV_INTERLEAVED_COLUMNS.
Para obtener más información acerca de cómo determinar con qué frecuencia ejecutar el comando VACUUM y cuándo ejecutar el comando VACUUM REINDEX, consulte Decisión de si se debe reindexar.