VACUUM [ VERBOSE ] [ ANALYZE ] [ table ] VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ] |
Imprime un rapport détaillé sur le nettoyage de chaque table.
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.
Le nom d'une table spécifique a nettoyer. Par défaut toutes les tables.
Le nom d'une colonne spécifique a analyser. Par défaut toutes les colonnes.
La commande a été acceptée et la base est en cours de nettoyage.
L'en-tête du rapport pour table :
L'analyse de la table elle-même.
L'analyse d'un index sur la table cible.
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.
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).
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 |