Uma tabela no Amazon Redshift mostra uma alta porcentagem não classificada, mas tem um valor de vacuum_sort_benefit de 0.
Breve descrição
O Amazon Redshift calcula a coluna não classificada em SVV_TABLE_INFO para mostrar a porcentagem de dados da tabela que não corresponde à ordem das chaves de classificação. Se a porcentagem não classificada for alta, uma operação de classificação VACUUM poderá melhorar o desempenho da consulta.
O valor de vacuum_sort_benefit determina se uma operação de classificação pode melhorar o desempenho. Quando o valor é 0, o Amazon Redshift não pode se beneficiar de uma operação VACUUM porque a classificação não otimiza as consultas.
Uma alta porcentagem não classificada com um valor de vacuum_sort_benefit de 0 pode ocorrer pelos seguintes motivos:
- O Amazon Redshift determina que a classificação oferece benefícios mínimos com base em planos de consulta recentes. As consultas acessam somente uma pequena parte da tabela, ou poucas consultas acessam a tabela.
- As consultas não são filtradas nem classificadas pelas colunas da chave de classificação. A classificação oferece benefícios mínimos, mesmo quando a tabela parece não classificada.
- Nenhuma consulta é executada na tabela, então o Amazon Redshift não precisa otimizar a ordem de classificação.
Para mais informações, consulte Vacuum de tabelas.
Resolução
Para determinar se a classificação melhora o desempenho, revise os valores de vacuum_sort_benefit e não classificados.
Se o valor de vacuum_sort_benefit for igual a 0 e o valor não classificado for alto, seus padrões de consulta não se beneficiarão da classificação de dados. A métrica vacuum_sort_benefit calcula a possível melhoria no desempenho da consulta a partir da classificação com base em seus padrões de workload.
Execute a consulta a seguir para obter os valores:
SELECT "schema", "table", sortkey1, sortkey_num, unsorted, vacuum_sort_benefit
FROM SVV_TABLE_INFO
WHERE "table" = 'table_name';
Observação: substitua table_name pelo nome da tabela.
Certifique-se de que a chave de classificação esteja alinhada com as colunas de filtro frequentemente consultadas. Se a chave de classificação não for relevante para os padrões de consulta, uma alta porcentagem não classificada não afetará significativamente o desempenho.
Se você determinar que a classificação melhora o desempenho, execute o seguinte comando de classificação VACUUM para limpar manualmente a tabela:
VACUUM SORT ONLY table_name;
Observação: substitua table_name pelo nome da tabela.
Informações relacionadas
Classificação automática de tabelas