Il y a plusieurs bonnes raisons pour effectuer la maintenance d'une base de données.
1) Le stockage physique
Une base est un volume de données hébergé sur un un/plusieurs serveurs. A chaque écriture, le volume augmente, à chaque suppression, il est supposé réduire.... sauf que, comment faire pour maintenir de bonnes performances quand des dizaines de trous apparaissent dans la structure? Représentons cela physiquement: imagine une bibliothèque, dans laquelle tu ajoutes et ponctionnes des livres. Au bout d'un moment, tu te rends compte que le tout ressemble à un gruyère. Le compactage (vacuum) permet donc de réorganiser la structure et maintenir des performances d'accès acceptables.
2) Le stockage logique
Nombre de BDD disposent d'une procédure de rollback évolué qui archive les enregistrements sur une durée de vie déterminée. A chaque suppression, la ligne est marquée et donc non réellement supprimée. Seulement, ça pénalise les requêtes (index non restructurés). La reconstruction des index supprime définitivement ces données inutiles, et trie à nouveau les informations pour améliorer les performances.
3) Compilation des procédures stockées
Une procédure stockée est "compilée", c'est-à-dire exécutée en avance de sorte à améliorer les performances. A chaque vacuum la compilation permet de rétablir de meilleurs temps de réponse.
4) Statistiques
Lorsqu'une base est mise en place, rares sont les études qui permettent d'identifier réellement ce qui sera le plus utilisé dedans. Par exemple, difficile de présumer quelle section de Q/R sera consultée... donc la base est auscultée par des statistiques mentionnant les tables les plus utilisées, les opérations les plus longues (requêtes durant le plus longtemps), les procédures les plus fréquemment exécutées, la croissance des tables dans le temps et j'en passe. De là, l'analyse permettra potentiellement d'améliorer les temps de réponse en ajoutant des index, en supprimant certains liens, en augmentant les tablespaces, ou bien encore en améliorant les performances (custom des requetes/procédures).
5) Historisation et épuration
Une base peut potentiellement contenir une "éternité" d'historique, sauf que le besoin n'est pas forcément celui-ci. donc, la maintenance peut décréter d'épurer des données antérieures à une date, et de cette manière s'assurer que la taille de base restera toujours raisonnable, ainsi que la durée des requêtes. En effet: 1.000.000 d'enregistrements à scanner, ce n'est pas 100.000 ...
6) Sauvegarde
Inutile de m'étendre sur le sujet, excepté sur la périodicité et la problématique d'indisponibilité. Une base peut aussi bien être sauvegardée une fois par jour, que dupliquée en temps réel pour ne pas interrompre les traitements (cas des serveurs H24 sur le web par exemple).
Answers & Comments
Verified answer
Il y a plusieurs bonnes raisons pour effectuer la maintenance d'une base de données.
1) Le stockage physique
Une base est un volume de données hébergé sur un un/plusieurs serveurs. A chaque écriture, le volume augmente, à chaque suppression, il est supposé réduire.... sauf que, comment faire pour maintenir de bonnes performances quand des dizaines de trous apparaissent dans la structure? Représentons cela physiquement: imagine une bibliothèque, dans laquelle tu ajoutes et ponctionnes des livres. Au bout d'un moment, tu te rends compte que le tout ressemble à un gruyère. Le compactage (vacuum) permet donc de réorganiser la structure et maintenir des performances d'accès acceptables.
2) Le stockage logique
Nombre de BDD disposent d'une procédure de rollback évolué qui archive les enregistrements sur une durée de vie déterminée. A chaque suppression, la ligne est marquée et donc non réellement supprimée. Seulement, ça pénalise les requêtes (index non restructurés). La reconstruction des index supprime définitivement ces données inutiles, et trie à nouveau les informations pour améliorer les performances.
3) Compilation des procédures stockées
Une procédure stockée est "compilée", c'est-à-dire exécutée en avance de sorte à améliorer les performances. A chaque vacuum la compilation permet de rétablir de meilleurs temps de réponse.
4) Statistiques
Lorsqu'une base est mise en place, rares sont les études qui permettent d'identifier réellement ce qui sera le plus utilisé dedans. Par exemple, difficile de présumer quelle section de Q/R sera consultée... donc la base est auscultée par des statistiques mentionnant les tables les plus utilisées, les opérations les plus longues (requêtes durant le plus longtemps), les procédures les plus fréquemment exécutées, la croissance des tables dans le temps et j'en passe. De là, l'analyse permettra potentiellement d'améliorer les temps de réponse en ajoutant des index, en supprimant certains liens, en augmentant les tablespaces, ou bien encore en améliorant les performances (custom des requetes/procédures).
5) Historisation et épuration
Une base peut potentiellement contenir une "éternité" d'historique, sauf que le besoin n'est pas forcément celui-ci. donc, la maintenance peut décréter d'épurer des données antérieures à une date, et de cette manière s'assurer que la taille de base restera toujours raisonnable, ainsi que la durée des requêtes. En effet: 1.000.000 d'enregistrements à scanner, ce n'est pas 100.000 ...
6) Sauvegarde
Inutile de m'étendre sur le sujet, excepté sur la périodicité et la problématique d'indisponibilité. Une base peut aussi bien être sauvegardée une fois par jour, que dupliquée en temps réel pour ne pas interrompre les traitements (cas des serveurs H24 sur le web par exemple).
J'espère que cela te conviendra!
recréer les tables d'index, éliminer les espaces vides dans les tables (lors de suppressions), contrôle de l'intégrité des données...
en gros, ça permet d'optimiser la base de données pour que l'utilisation en soit plus rapide.
et puis les sauvegardes aussi, ça peut être considéré comme de la maintenance...