Nettoyage base de données

Ce forum est destiné à recueillir les éventuels bugs rencontrés sur le jeu...
Répondre
Avatar de l’utilisateur
Abazigal
Pilier
Messages : 214
Inscription : 26 sept. 2008 00:53

Nettoyage base de données

Message par Abazigal » 26 avr. 2016 06:11

J'ignore si c'est normal mais, à 06h15 le nettoyage de la base de données est toujours en cours ??? :cherche:
Lotus Rouge Forever

Vas y mec! Rajoute du piment!!!
Avatar de l’utilisateur
Merrick
Le Taulier
Messages : 8875
Inscription : 18 avr. 2003 14:24
Localisation : Toulouse
Contact :

Re: Nettoyage base de données

Message par Merrick » 26 avr. 2016 07:05

Quelqu'un a mis le jeu en maintenance à 2h30, je ne sais pas qui. J'ai enlevé le mode maintenance, à l'instant, on verra ce qui se passe...
Avatar de l’utilisateur
Merrick
Le Taulier
Messages : 8875
Inscription : 18 avr. 2003 14:24
Localisation : Toulouse
Contact :

Re: Nettoyage base de données

Message par Merrick » 26 avr. 2016 07:10

J'ai compris, il y a un "vaccum analyze" qui tourne depuis ce moment là. C'est pas bon, mais j'ai pas le temps de regarder en détail pourquoi il prend autant de temps.
Avatar de l’utilisateur
Merrick
Le Taulier
Messages : 8875
Inscription : 18 avr. 2003 14:24
Localisation : Toulouse
Contact :

Re: Nettoyage base de données

Message par Merrick » 26 avr. 2016 07:27

Le qui en question, c'est moi...
Une opération planifiée tous les jours qui cette nuit a mal tourné, je fouillerai pourquoi un autre jour.
Avatar de l’utilisateur
Abazigal
Pilier
Messages : 214
Inscription : 26 sept. 2008 00:53

Re: Nettoyage base de données

Message par Abazigal » 26 avr. 2016 08:02

J'espère que tout ira bien par la suite.
E tout cas merci à toi Merrick ;-)

ps: si tu repasses par là et que tu as le temps de m'expliquer ce qu'est un "vaccum analyze", je serais preneur car, cela m'intrigue, une analyse de l aspirateur ??? :-)
Lotus Rouge Forever

Vas y mec! Rajoute du piment!!!
Avatar de l’utilisateur
Merrick
Le Taulier
Messages : 8875
Inscription : 18 avr. 2003 14:24
Localisation : Toulouse
Contact :

Re: Nettoyage base de données

Message par Merrick » 26 avr. 2016 19:06

Vaccuum analyze, c'est un deux parties :

vacuum : quand un enregistrement est terminé, Postgres ne considère pas que la place libérée par cet enregistrement est disponible. Il ne la prend pas pour de nouvelles données. Du coup... la taille des fichiers augmente, et les perfs baissent. Il faut régulièrement lancer un vacuum pour lui faire apprendre quelle est la place qui a été libérée qu'il peut utiliser (depuis la version 8, il existe une fonction autovacuum qui fait ça au fil de l'eau).

Exemple TRES schématisé : une table ou chaque record fait 1Ko. J'ai 100 records, le fichier fait 100Ko. J'efface 10 records. Le fichier fait toujours 100Ko. Je rajoute deux records. Le fichier fait maintenant 102Ko (surprise !). Je lance un vacuum. Le fichier fait TOUJOURS 102Ko. Je rajoute 5 records (on est à 97 records), le fichier fait TOUJOURS 102Ko (il a utilisé 5 "espaces" libres). Si j'en rajoute encore 10, on va arriver à 107 Ko (5 libres, +5 nouveaux).

Analyze : Postgres utilise un "explain plan" pour savoir comment traiter les requêtes qui lui sont passées. En fonction de la taille des tables, des index, il va calculer s'il doit utiliser tel ou tel index, ou plutôt faire une recherche séquentielle, etc... Mais ça, il doit l'apprendre. Pour ça, on utilise la commande analyze qui permet à postgres d'analyser la vraie taille des tables, le morcèlement des index, les requêtes déjà passées, etc... pour qu'il sache comment calculer le meilleur moyen possible pour les requêtes à venir.

Comme le analyze peut beaucoup changer suite à un vacuum, on les lance souvent ensemble.

Pour finir, il existe aussi le vacuum full, qui au lieu d'apprendre à Postgres à savoir quels sont les espaces vides à utiliser, lui demande de les libérer vraiment, et ainsi de réduire la taille des fichiers. Si on reprend notre premier exemple une table ou chaque record fait 1Ko. J'ai 100 records, le fichier fait 100Ko. J'efface 10 records. Le fichier fait toujours 100Ko. Je rajoute deux records. Le fichier fait maintenant 102Ko. Je lance un vacuum full. Le fichier maintenant 92Ko !

Il existe d'autres commandes d'optimisation qu'il faut connaître pour lancer de temps en temps pour garder un niveau de perfs correct. Sur une petite base, ça ne change rien, mais sur une base comme delain avec des tables a plus de 15M de records, ça peut changer la donne.
Répondre