Exécution de l’opération VACUUM sur les tables - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécution de l’opération VACUUM sur les tables

Amazon Redshift peut automatiquement trier et effectuer une VACUUM DELETE opération sur les tables en arrière-plan. Pour nettoyer les tables après un chargement ou une série de mises à jour incrémentielles, vous pouvez également exécuter la commande VACUUM, sur toute la base de données ou sur chaque table individuelle.

Note

Seuls les utilisateurs disposant des autorisations nécessaires peuvent efficacement vider une table. Si elle VACUUM est exécutée sans les autorisations de table nécessaires, l'opération se termine correctement mais n'a aucun effet. Pour obtenir la liste des autorisations de table valides permettant une exécution efficaceVACUUM, consultezVACUUM.

C’est pourquoi nous vous recommandons de nettoyer les tables individuellement en fonction des besoins. Nous vous recommandons également cette approche, car le nettoyage de toute la base de données peut être une opération coûteuse.

Tri automatique des tables

Amazon Redshift trie automatiquement les données en arrière-plan pour gérer les données de la table selon l’ordre de la clé de tri. Amazon Redshift assure le suivi de vos requêtes d’analyse afin de déterminer à quelles sections de la table le tri sera appliqué.

Selon la charge du système, Amazon Redshift lance le tri automatiquement. Ce tri automatique réduit la nécessité d'exécuter la VACUUM commande pour conserver les données dans l'ordre des clés de tri. Si vous avez besoin de données entièrement triées dans l'ordre des touches de tri, par exemple après un chargement de données important, vous pouvez toujours exécuter la VACUUM commande manuellement. Pour déterminer si votre table bénéficiera de l'exécution VACUUMSORT, surveillez la vacuum_sort_benefit colonne dansSVV_TABLE_INFO.

Amazon Redshift suit les requêtes d’analyse qui utilisent la clé de tri de chaque table. Amazon Redshift estime le pourcentage maximum d’amélioration en analysant et filtrant les données de chaque table (si la table a été complètement triée). L’estimation est visible dans la colonne vacuum_sort_benefit de SVV_TABLE_INFO. Vous pouvez utiliser cette colonne, ainsi que la unsorted colonne elle-même, pour déterminer dans quels cas les requêtes peuvent bénéficier d'une exécution manuelle VACUUM SORT sur une table. La colonne unsorted reflète l’ordre de tri physique d’une table. La vacuum_sort_benefit colonne indique l'impact du tri manuel d'un tableau VACUUMSORT.

Par exemple, réfléchissez à la requête suivante :

select "table", unsorted,vacuum_sort_benefit from svv_table_info order by 1;
table | unsorted | vacuum_sort_benefit -------+----------+--------------------- sales | 85.71 | 5.00 event | 45.24 | 67.00

Pour la table « sales », même si la table n’est pas triée à ~86 %, l’impact de la requête sur la performance pour la table est de 5 % seulement. Cela peut être parce qu’une petite partie de la table a été utilisée par les requêtes ou parce qu’un petit nombre de requêtes ont eu accès à la table. Pour la table « event », elle n’est pas triée physiquement à ~45 %. Mais l’impact de la requête sur la performance est de 67 %, ce qui indique qu’une partie plus importante de la table a été utilisée pour les requêtes ou qu’un grand nombre de requêtes ont eu accès à la table. L' « événement » de la table peut potentiellement bénéficier de la course à pied VACUUMSORT.

Suppression de vide automatique

Lorsque vous effectuez une suppression, les lignes sont marquées pour suppression, mais ne sont pas supprimées. Amazon Redshift exécute automatiquement une VACUUM DELETE opération en arrière-plan en fonction du nombre de lignes supprimées dans les tables de base de données. Amazon Redshift planifie l'exécution pendant VACUUM DELETE les périodes de charge réduite et suspend l'opération pendant les périodes de charge élevée.

VACUUMfréquence

Vous devez exécuter la commande VACUUM aussi souvent que nécessaire pour assurer des performances de requêtes constantes. Tenez compte des facteurs suivants pour déterminer la fréquence d'exécution de votre VACUUM commande :

  • Exécuté VACUUM pendant les périodes où vous prévoyez une activité minimale sur le cluster, par exemple le soir ou pendant les fenêtres d'administration de base de données désignées.

  • Exécutez VACUUM des commandes en dehors des fenêtres de maintenance. Pour plus d’informations, consultez Planifier la maintenance Windows.

  • Une grande région non triée se traduit par des temps d’exécution de la commande VACUUM plus longs. Si vous différez la commande, son exécution prendra plus de temps, car un plus grand nombre de données doit être réorganisé.

  • VACUUMest une opération gourmande en E/S. Par conséquent, plus votre aspirateur met du temps à terminer, plus il aura d'impact sur les requêtes simultanées et les autres opérations de base de données exécutées sur votre cluster.

  • VACUUMprend plus de temps pour les tables qui utilisent le tri entrelacé. Pour déterminer si les tables entrelacées doivent être retriées, interrogez la vue SVV_INTERLEAVED_COLUMNS.

Phase de tri et phase de fusion

Amazon Redshift effectue une opération VACUUM en deux étapes : tout d’abord, il trie les lignes de la région non triée, puis, si nécessaire, il fusionne les lignes nouvellement triées en fin de la table avec les lignes existantes. Lors de l’exécution de la commande VACUUM sur une grande table, l’opération procède par une série d’étapes consistant en tris incrémentiels suivis de fusions. Si l’opération échoue ou si Amazon Redshift passe hors connexion pendant l’opération, la table ou la base de données partiellement aspirées se trouvent dans un état cohérent, mais vous devez relancer manuellement l’opération VACUUM. Les tris incrémentiels sont perdus, mais les lignes fusionnées qui ont été validées avant la défaillance n’ont pas besoin d’être aspirées à nouveau. Si la région non triée est grande, le temps perdu peut être important. Pour plus d’informations sur les étapes de tri et de fusion, consultez Réduire le volume des lignes fusionnées.

Les utilisateurs peuvent accéder aux tables pendant qu’elles sont aspirées. Vous pouvez effectuer des requêtes et des opérations d'écriture pendant le nettoyage d'une table, mais lorsque le vide est exécuté simultanément, DML les deux opérations peuvent prendre plus de temps. Si vous exécutez UPDATE et lancez DELETE des instructions pendant un vide, les performances du système peuvent être réduites. Les fusions incrémentielles bloquent temporairement les DELETE opérations simultanées UPDATE UPDATE et, à leur tour, les DELETE opérations bloquent temporairement les étapes de fusion incrémentielle sur les tables concernées. DDLles opérations, telles que ALTERTABLE, sont bloquées jusqu'à ce que l'opération de mise sous vide se termine avec la table.

Note

Différents modificateurs pour VACUUM contrôler son fonctionnement. Vous pouvez les utiliser pour adapter l’opération aux besoins actuels. Par exemple, l'utilisation permet de VACUUM RECLUSTER raccourcir l'opération d'aspiration en n'effectuant pas une opération de fusion complète. Pour de plus amples informations, veuillez consulter VACUUM.

Seuil de VACUUM

Par défaut, VACUUM ignore la phase de tri pour tout tableau dont plus de 95 % des lignes sont déjà triées. Le fait de sauter la phase de tri peut améliorer considérablement les VACUUM performances. Pour modifier le seuil de tri par défaut pour une seule table, incluez le nom de la table et le PERCENT paramètre de seuil TO lorsque vous exécutez la VACUUM commande.

Types d’opération VACUUM

Pour plus d’informations sur les différents types d’opérations VACUUM, consultez VACUUM.