Passer au contenu

Pourquoi une table d'Amazon Redshift affiche-t-elle un pourcentage élevé de données non triées alors que l'avantage de l’opération de tri vacuum est nul ?

Lecture de 3 minute(s)
0

Une table d'Amazon Redshift affiche un pourcentage élevé de données non triées, mais présente une valeur vacuum_sort_benefit égale à 0.

Brève description

Amazon Redshift calcule la colonne non triée dans SVV_TABLE_INFO pour afficher le pourcentage de données de table qui ne correspondent pas à l'ordre des clés de tri. Si le pourcentage non trié est élevé, une opération de tri VACUUM peut améliorer les performances des requêtes.

La valeur vacuum_sort_benefit détermine si une opération de tri peut améliorer les performances. Lorsque la valeur est 0, Amazon Redshift ne peut pas bénéficier d'une opération VACUUM car le tri n'optimise pas les requêtes.

Un pourcentage non trié élevé avec une valeur vacuum_sort_benefit de 0 peut survenir pour les raisons suivantes :

  • Amazon Redshift détermine que le tri présente un avantage minimal sur la base des plans de requête récents. Les requêtes n'accèdent qu'à une petite partie de la table, ou peu de requêtes accèdent à la table.
  • Les requêtes ne filtrent pas et ne sont pas triées en fonction des colonnes de clés de tri. Le tri n'apporte que peu d'avantages, même lorsque la table ne semble pas triée.
  • Aucune requête n'est exécutée sur la table. Amazon Redshift n'a donc pas besoin d'optimiser l'ordre de tri.

Pour plus d'informations, consultez la section Opérations vacuum sur des tables.

Résolution

Pour déterminer si le tri améliore les performances, examinez à la fois les valeurs vacuum_sort_benefit et non triées.

Si la valeur vacuum_sort_benefit est égale à 0 et que la valeur non triée est élevée, les modèles de requête ne bénéficient pas du tri des données. La métrique vacuum_sort_benefit calcule l'amélioration potentielle des performances de requête grâce au tri en fonction de vos modèles de charge de travail.

Exécutez la requête suivante pour obtenir les valeurs :

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

Remarque : Remplacez table_name par le nom de la table.

Assurez-vous que la clé de tri est alignée avec les colonnes de filtre fréquemment demandées. Si la clé de tri n'est pas adaptée aux modèles de requête, un pourcentage élevé de données non triées n'a pas d'incidence significative sur les performances.

Si vous déterminez que le tri améliore les performances, exécutez la commande de tri VACUUM suivante pour exécuter une opération vacuum sur la table :

VACUUM SORT ONLY table_name;

Remarque : Remplacez table_name par le nom de la table.

Informations connexes

Tri automatique des tables

AWS OFFICIELA mis à jour il y a un an