VACUUM

Nom

VACUUM — Nettoie et analyse une base Postgres
VACUUM [ VERBOSE ] [ ANALYZE ] [ table ]
VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]

Entrées

VERBOSE

Imprime un rapport détaillé sur le nettoyage de chaque table.

ANALYZE

Met à jour les statistiques de colonne utilisées par l'optimiseur pour déterminer le moyen le plus efficace d'exécuter une requête.

table

Le nom d'une table spécifique a nettoyer. Par défaut toutes les tables.

column

Le nom d'une colonne spécifique a analyser. Par défaut toutes les colonnes.

Sorties

VACUUM

La commande a été acceptée et la base est en cours de nettoyage.

NOTICE: --Relation table--

L'en-tête du rapport pour table :

NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0; Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188; Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74. Elapsed 0/0 sec.

L'analyse de la table elle-même.

NOTICE: Index index: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.

L'analyse d'un index sur la table cible.

Description

VACUUM est utilisé dans Postgres comme moyen de vider le stockage et aussi comme moyen de collecter de l'information pour l'optimiseur.

VACUUM ouvre chaque classe dans la base, nettoie les enregistrements des transactions annulées, et met à jour les statistiques dans les catalogues systèmes. Les statistiques comprennent le nombre de tuples et le nombre de pages stockées dans toutes les classes. Le lancement régulier de VACUUM augmentera la vitesse de la base dans les processus des requêtes utilisateurs.

Notes

La base ouverte est la cible de VACUUM.

Nous recommendons que les bases utilisées en production soient nettoyées la nuit, de façon à conserver les statistiques à jour. Le requête VACUUM peut être exécutée à n'importe quel moment cependant. En particulier après avoir copié une grande classe dans Postgres ou après avoir supprimé un grand nombre d'enregistrements, ce peut être une bonne idée de lancer une requête VACUUM. Ceci mettra à jour les catalogues système avec les résultats des modifications récentes, et permettra à l'optimiseur de requête de Postgres de faire de meilleurs choix dans la gestion des requêtes utilisateurs.

Si le serveur crash pendant un VACUUM, il y a des chances qu'il ait laissé un fichier de verrouillage dans les environs. Si vous avez un message d'erreur lorsque vous essayez de relancer VACUUM ceci provient du fichier de verrouillage. Si vous êtes sûrs que VACUUM ne tourne pas, supprimez le fichier pg_vlock du répertoire de votre base. (i.e. PGDATA/base/dbname/pg_vlock).

Utilisation

Ce qui suit est un exemple de VACUUM sur une table dans la base regression :
regression=> vacuum verbose analyze onek;
NOTICE:  --Relation onek--
NOTICE:  Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
         Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188;
         Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74.
         Elapsed 0/0 sec.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique2: Pages 19; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique1: Pages 17; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Rel onek: Pages: 98 --> 25; Tuple(s) moved: 1000. Elapsed 0/1 sec.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique2: Pages 19; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique1: Pages 17; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
VACUUM
      

Compatibilité

SQL92

Il n'existe pas de VACUUM en SQL92.