Message posté par : T. Rossini
----------------------------------------
Salut,
VACUUM nettoie les lignes mortes de votre base. Quand une ligne est supprimée ou modifiée
celle-ci persiste dans les fichiers de votre base de données, en appelant VACUUM vous
demander
au serveur de les supprimer physiquement du disque (ou de les rendre à nouveau
disponibles) .
ANALYZE calcule des statistiques sur vos tables pour que le query planner puisse en tirer
pleinement avantage
et utilise un plan de requête optimal. Un plan de requête est un ensemble d'opération
de lecture des fichiers internes
de la base de données, vous pouvez voir le plan d'une requête en utilisant la commande
EXPLAIN.
Vous pouvez utilisez ces deux commandes sans avoir peur d'un quelconque risque. La
seule contrainte est le VACUUM FULL
qui bloquera l'accès à votre base le temps que le VACUUM s'effectue.
Concernant votre problème, les index sont en effet à double tranchant en ce sens qu'il
facilite l'accès mais peuvent ralentir
l'écriture. Ceci dit, supprimer un index avant une insertion volumineuse et le
reconstruire par la suite est une pratique commune,
(mais tout dépends de vos cas d'utilisation).
Certains types d'index sont moins couteux que d'autres à mettre à jour, exemple :
btree
A noter qu'un INSERT de 20 000 lignes est sous-optimal, on lui préférera la commande
COPY.
Dans tout les cas, après des modifications impactant beaucoup de lignes (INSERT ou UPDATE)
, vos table se retrouvent
avec un tas de lignes mortes et des statistiques obsolètes. Par conséquence, le serveur
mettra plus de temps
à identifier ou se trouvent les données sur le disque.
Donc une fois vos modifications terminées, executer au moins VACUUM ANALYZE.
Modifier certains paramètres de gestion de mémoire de postgresql peut aussi s'avérer
judicieux.
Vous avez à votre dispostion pgTune, qui vous donnera un exemple de configuration en
fonction de la configuration de
votre serveur.
https://pgtune.leopard.in.ua/#/
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=329862#p329862
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net