Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

VACUUM

Mode de mise au point
VACUUM - 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.

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.

Retrie les lignes et récupère l’espace dans une table spécifiée ou dans toutes les tables de la base de données actuelle.

Note

Seuls les utilisateurs disposant des autorisations nécessaires peuvent efficacement vider une table. Si 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 d’exécuter VACUUM efficacement, consultez Privilèges requis ci-après.

Amazon Redshift trie automatiquement les données et exécute l’opération VACUUM DELETE en arrière-plan. Cela réduit la nécessité d’exécuter la commande VACUUM. Pour plus d'informations, consultez Exécution de l’opération VACUUM sur les tables.

Par défaut, la commande VACUUM ignore la phase de tri pour toute table dans laquelle plus de 95 % des lignes sont déjà triées. L’omission de la phase de tri peut améliorer considérablement les performances de l’opération VACUUM. Pour modifier le seuil de suppression ou de tri par défaut d’une seule table, incluez le nom de la table et le paramètre TO seuil PERCENT lorsque vous exécutez la commande VACUUM.

Les utilisateurs peuvent accéder aux tables pendant qu’elles sont aspirées. Vous pouvez exécuter des requêtes et des opérations d’écriture pendant qu’une table est l’objet de la commande VACUUM, mais lorsque des commandes de langage de manipulation de données (DML) et une commande VACUUM s’exécutent en même temps, les deux peuvent prendre plus de temps. Si vous exécutez les instructions UPDATE et DELETE pendant une opération VACUUM, les performances du système peuvent être réduites. L’opération VACUUM DELETE bloque temporairement les opérations de mise à jour et de suppression.

Amazon Redshift exécute automatiquement une opération VACUUM DELETE ONLY en arrière-plan. L’opération automatique VACUUM s’interrompt lorsque les utilisateurs exécutent des opérations de langage de définition de données (DLL) telles que l’opération ALTER TABLE.

Note

La syntaxe et le comportement de la commande Amazon Redshift VACUUM sont sensiblement différentes de l’opération PostgreSQL VACUUM. Par exemple, l’opération VACUUM par défaut dans Amazon Redshift est VACUUM FULL, qui récupère de l’espace disque et retrie toutes les lignes. En revanche, l’opération VACUUM par défaut dans PostgreSQL récupère simplement l’espace et le rend disponible pour sa réutilisation.

Pour de plus amples informations, veuillez consulter Exécution de l’opération VACUUM sur les tables.

Privilèges requis

Les privilèges suivants sont requis pour VACUUM :

  • Superuser

  • Utilisateurs disposant du privilège VACUUM

  • Propriétaire de la table

  • Propriétaire de la base de données avec qui la table est partagée

Syntaxe

VACUUM [ FULL | SORT ONLY | DELETE ONLY | REINDEX | RECLUSTER ] [ [ table_name ] [ TO threshold PERCENT ] [ BOOST ] ]

Paramètres

FULL

Trie la table spécifiée (ou toutes les tables de la base de données actuelle) et récupère l’espace disque occupé par les lignes qui ont été marquées en vue de leur suppression par les opérations UPDATE et DELETE précédentes. VACUUM FULL est la valeur par défaut.

Une opération complète n’effectue pas une réindexation des tables entrelacées. Pour réindexer les tables entrelacées et exécuter une opération VACUUM FULL, utilisez l’option VACUUM REINDEX.

Par défaut, VACUUM FULL ignore la phase de tri d’une table déjà triée à au moins 95 %. Si l’opération VACUUM peut ignorer la phase de tri, elle effectue DELETE ONLY et récupère l’espace de la phase de suppression de telle sorte qu’au moins 95 % des lignes restantes ne sont pas marquées en vue de leur suppression.  

Si le seuil de tri n’est pas atteint (par exemple, si 90 % des lignes sont triées) et que VACUUM effectue un tri complet, il effectue également une opération de suppression complète, récupérant l’espace de 100 % des lignes supprimées.

Vous ne pouvez modifier le seuil par défaut de VACUUM que pour une seule table. Pour modifier le seuil par défaut de VACUUM pour une seule table, incluez le nom de la table et le paramètre TO seuil PERCENT.

SORT ONLY

Trie la table spécifiée (ou toutes les tables de la base de données actuelle) sans récupération de l’espace libéré par les lignes supprimées. Cette option est utile lorsque la récupération de l’espace disque n’est pas importante, mais qu’un nouveau tri l’est. Une opération SORT ONLY réduit le temps passé pour les opérations VACUUM lorsque la région non triée ne contient pas un grand nombre de lignes supprimées et ne couvre pas l’ensemble de la région triée. Les applications qui n’ont pas de contraintes d’espace disque, mais dépendent de l’optimisation des requêtes et de la conservation des lignes de table triées peuvent bénéficier de ce type d’opération.

Par défaut, VACUUM SORT ONLY ignore toute table déjà triée à au moins 95 %. Pour modifier le seuil de tri par défaut d’une seule table, incluez le nom de la table et le paramètre TO seuil PERCENT lorsque vous exécutez la commande VACUUM.

DELETE ONLY

Amazon Redshift exécute automatiquement une opération VACUUM DELETE ONLY en arrière-plan. Par conséquent, vous n’aurez que rarement, voire jamais, besoin d’exécuter une opération VACUUM DELETE ONLY.

L’opération VACUUM DELETE récupère l’espace disque occupé par les lignes marquées en vue de leur suppression par des opérations UPDATE et DELETE précédentes, et compacte la table pour libérer l’espace consommé. Une opération DELETE ONLY ne trie pas les données de la table.

Cette option réduit le temps passé pour les opérations VACUUM lorsque la récupération de l’espace disque est importante, mais qu’un nouveau tri des lignes ne l’est pas. Cette option peut également être utile lorsque vos performances de requête sont déjà optimales et qu’un nouveau tri des lignes pour optimiser ces performances n’est pas une condition requise.

Par défaut, VACUUM DELETE ONLY récupère de l’espace de telle sorte qu’au moins 95 % des lignes restantes ne sont pas marquées en vue de leur suppression. Pour modifier le seuil de suppression par défaut d’une seule table, incluez le nom de la table et le paramètre TO seuil PERCENT lorsque vous exécutez la commande VACUUM. 

Certaines opérations, par exemple ALTER TABLE APPEND, peuvent provoquer la fragmentation des tables. Lorsque vous utilisez la clause DELETE ONLY, l’opération VACUUM récupère l’espace des tables fragmentées. La même valeur de seuil de 95% s’applique à l’opération de défragmentation.

REINDEX

Analyse la distribution des valeurs des colonnes de clé de tri entrelacé, puis effectue une opération VACUUM complète. Si REINDEX est utilisé, le nom d’une table est requis.

VACUUM REINDEX prend nettement plus de temps que VACUUM FULL, car l’opération effectue un passage supplémentaire pour analyser les clés de tri entrelacé. L’opération de tri et de fusion peut prendre plus de temps pour les tables entrelacées, car le tri entrelacé peut nécessiter la réorganisation de plus de lignes qu’un tri composé.

Si une opération VACUUM REINDEX se termine avant la fin, l’opération VACUUM suivante reprend l’opération de réindexation avant d’exécuter l’opération VACUUM complète.

VACUUM REINDEX n’est pas pris en charge avec TO seuil PERCENT. 

REGROUPER

Trie les parties de la table qui ne sont pas triées. Les parties de la table qui sont déjà triées par le tri automatique de la table restent intactes. Cette commande ne fusionne pas les données nouvellement triées avec la région triée. Elle ne récupère pas non plus tout l’espace marqué pour suppression. Lorsque cette commande est terminée, il se peut que la table n’apparaisse pas entièrement triée, comme indiqué par le champ unsorted dans SVV_TABLE_INFO.

Nous vous recommandons d’utiliser VACUUM RECLUSTER pour les grandes tables avec une ingestion fréquente et des requêtes qui accèdent uniquement aux données les plus récentes.

VACUUM RECLUSTER n’est pas pris en charge avec TO threshold PERCENT. Si RECLUSTER est utilisé, le nom d’une table est requis.

VACUUM RECLUSTER n’est pas pris en charge sur les tables ayant des clés de tri entrelacées et les tables ayant le style de distribution ALL.

table_name

Nom de la table sur laquelle s’applique l’opération VACUUM. Si vous ne spécifiez pas un nom de table, l’opération VACUUM s’applique à toutes les tables de la base de données actuelle. Vous pouvez spécifier une table créée par l’utilisateur permanente ou temporaire. La commande n’est pas pertinente pour les autres objets, tels que les vues et les tables système.

Si vous incluez le paramètre TO seuil PERCENT, un nom de table est obligatoire.

TO seuil PERCENT

Clause qui spécifie le seuil au-dessus duquel VACUUM ignore la phase de tri et le seuil cible de récupération de l’espace dans la phase de suppression. Le seuil de tri est le pourcentage du total des lignes qui sont déjà dans l’ordre de tri de la table spécifiée avant l’opération VACUUM.  Le seuil de suppression est le pourcentage minimal de lignes totales non marquées en vue de leur suppression après l’opération VACUUM.

Comme VACUUM ne retrie les lignes que lorsque le pourcentage de lignes triées d’une table est inférieur au seuil de tri, Amazon Redshift peut souvent réduire la durée de VACUUM de façon significative. De même, lorsque VACUUM n’est pas limité pour récupérer l’espace de 100 % des lignes marquée en vue de leur suppression, il est souvent possible d’ignorer la réécriture des blocs contenant seulement quelques lignes supprimées.

Par exemple, si vous spécifiez 75 pour seuil, VACUUM ignore la phase de tri si 75 % ou plus des lignes de la table sont déjà dans l’ordre de tri. Pour la phase de suppression, VACUUM définit une cible de récupération de l’espace disque de telle sorte qu’au moins 75 % des lignes de la table ne sont pas marquées en vue de leur suppression après l’opération VACUUM. La valeur seuil doit être un nombre entier compris entre 0 et 100. La valeur par défaut est 95. Si vous spécifiez une valeur égale à 100, VACUUM trie toujours la table, sauf si elle est déjà entièrement triée, et récupère l’espace de toutes les lignes marquées en vue de leur suppression. Si vous spécifiez la valeur 0, VACUUM ne trie jamais la table et ne récupère jamais l’espace.

Si vous incluez le paramètre TO seuil PERCENT, vous devez également spécifier un nom de table. Si le nom de table est omis, VACUUM échoue.

Vous ne pouvez pas utiliser le paramètre TO seuil PERCENT avec REINDEX.

BOOST

Exécute la commande VACUUM avec des ressources supplémentaires, comme la mémoire et l’espace disque, en fonction de leur disponibilité. Avec l’option BOOST, VACUUM exécute l’opération dans une fenêtre et bloque les suppressions et mises à jour simultanées pendant la durée de l’opération VACUUM. L’exécution de l’option BOOST utilise des ressources systèmes, ce qui peut affecter les performances de la requête. Exécutez l’opération VACUUM BOOST lorsque la charge sur le système est légère, par exemple pendant les opérations de maintenance.

Tenez compte des éléments suivants lorsque vous utilisez l’option BOOST :

  • Lorsque l’option BOOST est spécifiée, la valeur table_name est requise.

  • L’option BOOST n’est pas prise en charge avec REINDEX.

  • L’option BOOST est ignorée avec DELETE ONLY.

Notes d’utilisation

Pour la plupart des applications Amazon Redshift, une opération VACUUM FULL est recommandée. Pour plus d'informations, consultez Exécution de l’opération VACUUM sur les tables.

Avant d’exécuter une opération VACUUM, notez le comportement suivant :

  • Vous ne pouvez pas exécuter VACUUM au sein d’un bloc de transaction (BEGIN ... END). Pour plus d’informations sur les transactions, consultez Isolement sérialisable.

  • Une certaine croissance de la table peut se produire lors d’une opération VACUUM. Ce comportement est attendu lorsqu’il n’y a aucune ligne supprimée à récupérer ou que le nouvel ordre de tri de la table se traduit par un ratio inférieur de compression des données.

  • Pendant les opérations VACUUM, une certaine dégradation des performances des requêtes est attendue. Les performances normales reprennent dès que l’opération VACUUM est terminée.

  • Les opérations d’écriture simultanées se poursuivent pendant les opérations VACUUM, mais nous ne les recommandons pas. Il est plus efficace de terminer les opérations d’écriture avant d’exécuter l’opération VACUUM. En outre, toutes les données écrites après le démarrage d’une opération de vide ne peuvent pas être nettoyées par cette opération. Dans ce cas, une deuxième opération de nettoyage est nécessaire.

  • Une opération VACUUM peut ne pas être en mesure de démarrer si une opération de chargement ou d’insertion est déjà en cours. Les opérations VACUUM nécessitent temporairement un accès exclusif aux tables afin de démarrer. Comme cet accès exclusif est requis brièvement, les opérations VACUUM ne bloquent pas les charges et les insertions simultanées pendant une période de temps significative.

  • Les opérations VACUUM sont ignorées lorsqu’il n’y a aucun travail à faire pour une table spécifique ; cependant, la découverte que l’opération peut être ignorée a un coût. Si vous savez qu’une table est vierge ou qu’elle ne respecte pas le seuil VACUUM défini, n’exécutez pas sur elle d’opération VACUUM.

  • Une opération DELETE ONLY sur une petite table peut ne pas réduire le nombre de blocs utilisés pour stocker les données, en particulier lorsque la table possède un grand nombre de colonnes ou que le cluster utilise un grand nombre de tranches par nœud. Ces opérations VACUUM ajoutent un bloc par colonne et par tranche pour tenir compte des insertions simultanées dans la table ; en outre, il est possible que cette surcharge compense la diminution du nombre de blocs de l’espace disque récupéré. Par exemple, si une table de 10 colonnes sur un cluster de 8 nœuds occupe 1000 blocs avant une opération VACUUM, celle-ci ne réduit pas le nombre réel de blocs, sauf si plus de 80 blocs d’espace disque sont récupérés en raison des lignes supprimées. (Chaque bloc de données utilise 1 Mo.)

Les opérations VACUUM automatiques s’interrompent si une des conditions suivantes est remplie :

  • Un utilisateur exécute une opération de langage de manipulation de données (DDL), telle que ALTER TABLE, qui nécessite un verrou exclusif sur une table pour laquelle une opération VACUUM automatique est en cours.

  • Une période de forte charge de cluster.

Support pour VACUUM simultané

Amazon Redshift prend en charge l'exécution simultanée de plusieurs transactions sous vide sur différentes sessions d'un cluster ou d'un groupe de travail. Cela signifie que vous pouvez émettre des instances différentes et multiples de tous les modes d'aspiration à la fois, chaque transaction d'aspiration étant enregistrée sur une table unique. Deux opérations d'aspiration ne peuvent pas fonctionner sur une seule table en même temps.

Directives relatives à l'utilisation simultanée d'un aspirateur

  • Lorsque vous exécutez des transactions de vide simultanées sur différentes sessions, vous devez surveiller les ressources du système et éviter d'exécuter un trop grand nombre d'opérations de vide simultanément.

  • Le niveau de simultanéité recommandé dépend de l'espace à récupérer, du nombre et de la largeur des rangées à trier, de la taille de l'entrepôt et de la taille de votre charge de travail associée aux opérations VACUUM.

  • Selon le mode de transaction de mise sous vide, commencez par deux opérations de mise sous vide simultanées, puis ajoutez-en d'autres en fonction de leur durée d'exécution et de la charge du système. Tout comme les autres requêtes volumineuses émises par les utilisateurs, les opérations de vide peuvent commencer à être mises en file d'attente si vous en exécutez un trop grand nombre simultanément lorsqu'Amazon Redshift atteint les limites de ressources du système.

  • Exécutez plusieurs opérations Vacuum BOOST avec soin. Exécuter Vacuum avec l'option BOOST sollicite les ressources du système, ce qui peut affecter les performances des requêtes. Exécutez l’opération VACUUM BOOST lorsque la charge sur le système est légère, par exemple pendant les opérations de maintenance.

  • Si vous ne spécifiez pas un nom de table, l’opération VACUUM s’applique à toutes les tables de la base de données actuelle. Ces opérations de mise sous vide se déroulent toujours de manière séquentielle.

Exemples

Récupérez l’espace et la base de données, et triez à nouveau les lignes de toutes les tables en fonction du seuil d’aspiration de 95 % par défaut.

vacuum;

Récupérez l’espace et retriez les lignes de la table SALES en fonction du seuil de 95 % par défaut.

vacuum sales;

Récupérez toujours l’espace et retriez les lignes de la table SALES.

vacuum sales to 100 percent;

Retriez les lignes de la table SALES uniquement si moins de 75 % des lignes sont déjà triées.

vacuum sort only sales to 75 percent;

Récupérez de l’espace dans la table SALES, de telle sorte qu’au moins 75 % des lignes restantes ne soient pas marqués en vue de leur suppression après l’aspiration.

vacuum delete only sales to 75 percent;

Réindexez, puis aspirez la table LISTING.

vacuum reindex listing;

La commande suivante renvoie une erreur.

vacuum reindex listing to 75 percent;

Regroupez, puis aspirez la table LISTING.

vacuum recluster listing;

Regroupez, puis aspirez la table LISTING avec l’option BOOST.

vacuum recluster listing boost;

Sur cette page

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.