Saltar al contenido

¿Por qué una tabla de Amazon Redshift muestra un porcentaje alto de valores sin ordenar cuando el beneficio de ordenación de limpieza es 0?

3 minutos de lectura
0

Una tabla de Amazon Redshift muestra un porcentaje alto de valores sin ordenar, pero tiene un valor de vacuum_sort_benefit de 0.

Descripción breve

Amazon Redshift calcula la columna sin ordenar en SVV_TABLE_INFO para mostrar el porcentaje de datos de la tabla que no coincide con el orden de la clave de ordenación. Si el porcentaje sin ordenar es alto, una operación de ordenación de VACUUM podría mejorar el rendimiento de las consultas.

El valor de vacuum_sort_benefit determina si una operación de ordenación puede mejorar el rendimiento. Cuando el valor es 0, Amazon Redshift no puede beneficiarse de una operación VACUUM porque la ordenación no optimiza las consultas.

Puede producirse un porcentaje alto sin ordenar con un valor de vacuum_sort_benefit de 0 por los siguientes motivos:

  • Amazon Redshift determina que la ordenación ofrece un beneficio mínimo en función de los planes de consulta recientes. Las consultas solo acceden a una pequeña parte de la tabla o solo unas pocas consultas acceden a la tabla.
  • Las consultas no se filtran ni ordenan según las columnas de la clave de ordenación. La ordenación proporciona un beneficio mínimo, incluso cuando la tabla aparece desordenada.
  • No se ejecuta ninguna consulta en la tabla, por lo que Amazon Redshift no necesita optimizar el orden de ordenación.

Para obtener más información, consulta Limpieza de tablas.

Resolución

Para determinar si la ordenación mejora el rendimiento, revisa tanto los valores de vacuum_sort_benefit como los valores sin ordenar.

Si tu valor de vacuum_sort_benefit es igual a 0 y el valor sin ordenar es alto, tus patrones de consulta no se benefician de la ordenación de los datos. La métrica vacuum_sort_benefit calcula la posible mejora del rendimiento de las consultas a partir de la ordenación en función de los patrones de carga de trabajo.

Ejecuta la siguiente consulta para obtener los valores:

SELECT "schema", "table", sortkey1, sortkey_num, unsorted, vacuum_sort_benefit
 FROM SVV_TABLE_INFO
WHERE "table" = 'table_name';

Nota: Sustituye table_name por el nombre de la tabla.

Asegúrate de que la clave de ordenación esté alineada con las columnas de filtro consultadas con frecuencia. Si la clave de ordenación no es relevante para los patrones de consulta, un porcentaje alto de valores sin ordenar no afecta significativamente al rendimiento.

Si determinas que la ordenación mejora el rendimiento, ejecuta el siguiente comando de ordenación VACUUM para limpiar la tabla manualmente:

VACUUM SORT ONLY table_name;

Nota: Sustituye table_name por el nombre de la tabla.

Información relacionada

Ordenación automática de tablas

OFICIAL DE AWSActualizada hace un año