SGBD RELATIONNELS PIERRE MARCENAC RESUME Cet ouvrage a pour objectif de clarifier et situer les différents paramètres internes des Systèmes de Gestion de Bases de Données Relationnels (SGBDR) qu'il est aujourd'hui fondamental de maîtriser afin d'améliorer leurs performancesIl se propose de vous aider à : ● optimiser un système existant et connaître les impacts de certains paramètres en fonction du type d'applications fonctionnant sur le système ● choisir un SGBDR en ayant comme contrainte les critères de performances, et ainsi se rendre compte des différentes opérations qu'il sera nécessaire d'effectuer pour régler le système (opération de "Tuning") Il débute par une étude des paramètres à prendre en compte et des différents algorithmes internes pour l'exécution des requêtes de lecture et de mises à jourPuis, ces paramètres et algorithmes sont discutés ainsi que leur adéquation aux différents types d'applications rencontrésIl présente enfin une étude comparative des différentes approches proposées dans les principaux SGBDR du marché. C e livre s'adresse donc aux Administrateurs de Bases de Données (ABD) et programmeurs d'applications sur SGBDRIl intéressera aussi les décideurs, utilisateurs, étudiants et enseignants désirant approfondir leurs connaissances de ces systèmes. TABLE DES MATIERES CHAPITRE 1 1 2 3 4 CHAPITRE 2 1 2 3 CHAPITRE 3 1 INTRODUCTION LE RELATIONNEL AUJOURD'HUI LES GAINS DU RELATIONNEL 2.1 L'évolution de la gestion des données 2.2 Une architecture de données à trois niveaux 2.3 Fonctionnement d'un SGBD implantant trois niveaux 2.4 Les défis du relationnel 2.5 Résumé des tendances d'aujourd'hui et des gains du relationnel MAIS ALORS, OÙ SONT LES PROBLEMES ? 3.1 Influence de la flexibilité sur les performances 3.2 Influence de l'architecture à 3 niveaux 3.3 Influence du type d'applications et rôle de l'ABD 3.4 Résumé des considérations et objectifs de l'étude 3.5 Organisation de l'ouvrage PRESENTATION D'UN EXEMPLE SIMPLE 1 1 2 2 3 5 6 9 10 10 12 12 13 14 15 OPTIMISATION LOGIQUE DE LA BASE INTRODUCTION ET RAPPELS SUR LA CONCEPTION LOGIQUE OPTIMISATION DU SCHEMA RELATIONNEL 2.1 La dénormalisation 2.2 Le stockage de valeurs redondantes et la codification OPTIMISATION DES ORDRES SQL 3.1 Introduction 3.2 Performances des opérateurs SQL 17 17 23 24 26 27 27 28 3.3 32 Résumé des forces et des faiblesses du langage LA GESTION PHYSIQUE DES DONNEES COMMENT LE SGBD GERE LES DONNEES? 1.1 Une gestion propre au SGBDR 1.2 Interférences avec le système d'exploitation 35 35 36 37 2 3 CHAPITRE 4 1 2 3 4 5 CHAPITRE 5 1 2 CHAPITRE 6 1 2 3 4 1.2 Interférences avec le système d'exploitation LA GESTION DE LA MEMOIRE CENTRALE 2.1 Gestion des données de l'utilisateur: mémoire cache 2.2 Algorithmes d'allocation de la mémoire cache 2.3 Zone de mémoire partageable 2.4 Gestion de l'activité des applications de l'utilisateur 2.5 Gestion des processus SGBD 2.6 Gestion de la mémoire centrale dans les SGBDR commercialisés LA GESTION DES FICHIERS DE LA MEMOIRE SECONDAIRE 3.1 La taille des fichiers de la base 3.2 Les paramètres affectant l'emplacement des fichiers 3.3 Gestion de la mémoire secondaire dans les SGBDR commercialisés 37 38 38 39 41 42 42 43 49 50 50 54 LA GESTION DES METHODES D'ACCES AUX DONNEES QU'EST-CE-QU'UNE METHODE D'ACCES ? PANORAMA DES METHODES D'ACCES AUX DONNEES EXISTANTES 2.1 La méthode séquentielle 2.2 La méthode relative ou accès direct 2.3 Les méthodes basées sur les index 2.4 La méthode du "Hashing" 2.5 La mise en Clusters LES METHODES D'ACCES BASEES SUR LES INDEX 3.1 Fonctionnement d'un index 3.2 Index hiérarchiques 3.3 Types d'index 3.4 Avantages et inconvénients des index 3.5 Quand doit-on créer des index ? 3.6 Mise en œuvre des index hiérarchiques: ISAM et B- Trees 3.7 Les index dans les principaux SGBDR du marché LE HACHAGE 4.1 Fonctionnement du hachage 4.2 Avantages et inconvénients du hachage 4.3 Quand peut-on utiliser le hachage ? 4.4 Le hachage dans les SGBDR du marché 4.5 Quand utiliser le hachage plutôt que les index ? LA MISE EN CLUSTERS 5.1 Qu'est ce qu 'une mise en Clusters ? 5.2 Le Clustering dans les principaux SGBDR du marché 5.3 Les index sur Cluster 5.4 Les index sur Cluster et les SGBDR du marché 61 61 63 63 63 63 64 64 64 64 67 68 69 71 72 77 83 83 84 86 87 88 89 89 90 91 93 OPTIMISATION DES REQUETES EN LECTURE LE FONCTIONNEMENT DU SGBDR EN RECHERCHE DE DONNEES 1.1 Les différentes unités fonctionnelles d'un SGBDR 1.2 Le rôle de l'analyseur de requêtes 1.3 Le rôle du gestionnaire de données LES OPTIMISEURS DE REQUETES 2.1 Le rôle de l'optimiseur de requêtes 2.2 Les différentes caractéristiques des optimiseurs de requêtes 2.3 Classification des optimiseurs de requêtes 2.4 Les optimiseurs de requêtes dans les principaux SGBDR du marché 95 95 96 98 98 98 98 100 106 107 OPTIMISATION DES REQUETES EN MISE A JOUR LE CONCEPT DE TRANSACTION 1.1 Introduction 1.2 Pourquoi une transaction ? 1.3 Propriétés des transactions LES PROBLEMES LIES AU MECANISME DU COMMIT-ROLLBACK 2.1 L'avortement en cascade 2.2 Avortement en cascade et performances 2.3 L'exécution rigoureuse des transactions 2.4 Problèmes posés par le mécanisme du Commit/Rollback et performances dans les SGBDR 113 113 113 115 117 119 120 122 122 124 CONCURRENCE ET SERIALISIBILITE DES TRANSACTIONS 3.1 Exemple de concurrence et verrouillage 125 125 3.2 Type de verrous 3.3 Verrouillage implicite dans les SGBDR 3.4 Libération automatique des verrous 3.5 Granularité du verrouillage 3.6 Impact de la granularité du verrouillage sur les performances 3.7 Mécanismes de verrouillage dans les SGBDR commercialisés ARCHITECTURE ET FONCTIONNEMENT INTERNE DU SGBDR 4.1 Architecture interne du SGBDR 4.2 Fonctionnement des modules transactionnels et impacts sur les performances 4.3 Technique pour assurer l'atomicité des transactions 128 128 129 129 130 131 143 144 146 147 5 6 7 8 9 CHAPITRE 7 1 2 3 4 5 6 CHAPITRE 8 1 2 3 4 4.3 Technique pour assurer l'atomicité des transactions 4.4 Technique pour assurer la sérialisibilité, la récupérabilité et l'exécution rigoureuse des transactions LE GESTIONNAIRE ET LA TABLE DE VERROUS 5 .1 Fonctionnement 5.2 Performances des tables de verrous LE PROTOCOLE DE VERROUILLAGE A DEUX PHASES LES PROBLEMES DE L'INTERBLOCAGE ET DES TUPLES FANTOMES 7.1 Interblocages (ou "Deadlocks") 7.2 Mécanismes de détection de l'interblocage et impacts sur les performances 7.3 Mécanismes de résolution de l'interblocage 7.4 Conseils pour éviter les interblocages 7.5 Mécanismes de détection et de résolution dans les SGBDR commercialisés et impacts sur les performances 7 .6 Le problème des tuples fantômes VERROUILLAGE ET OPTIMISATION DES PERFORMANCES DANS LES SGBDR 8.1 Systèmes avec contention de ressources mais pas de données 8.2 Systèmes avec contention de données mais pas de ressources 8.3 Estimation de la charge du travail d'un SGBDR LES BENCHMARKS 147 147 150 150 151 152 153 153 154 157 158 TECHNIQUES DE REPRISE SUR PANNE OBJECTIFS ET TYPES DE PANNES LE FONCTIONNEMENT DU GESTIONNAIRE DE DONNEES 2.1 Résumé du fonctionnement interne du SGBDR 2.2 Fonctionnement du gestionnaire de mémoire cache LE JOURNAL DES TRANSACTIONS ET LE GESTIONNAIRE DES RECUPERATIONS 3.1 Nécessité d'un journal de transactions 3.2 Fonctionnement d'un journal de transactions 3.3 Performances des journaux de transactions logiques contre physiques 3.4 Minimisation de la taille d'un journal physique 3.5 Fin du journal 3.6 Le journal de transactions dans les SGBDR commercialisés PERFORMANCES DANS LES MECANISMES DE REPRISE: LES POINTS DE COHERENCE 4.1 Qu 'est ce qu 'un point de cohérence? 4.2 Performances des SGBDR et points de cohérence 4.3 Les CheckPoints dans les SGBDR commercialisés FONCTIONNEMENT DES MECANISMES DE REPRISE A CHAUD 5.1 Quatre fonctionnements de base pour la reprise à chaud 5.2 Les reprises à chaud qui nécessitent les actions Défaire et Refaire 5.3 Les reprises à chaud qui nécessitent les actions défaire mais pas refaire 5.4 Les reprises à chaud qui nécessitent les actions refaire mais pas défaire 5.5 Les reprises à chaud qui ne nécessitent ni actions défaire ni actions refaire 5.6 Fonctionnement des reprises à chaud dans les SGBDR commercialisés LES MECANISMES DE REPRISE A FROID 6.1 Les différentes approches 6.2 Mécanismes de reprise à froid dans les SGBDR commercialisés 173 173 175 176 177 184 184 185 186 187 188 188 191 191 192 193 196 196 197 199 199 202 202 205 205 207 UNE APPROCHE MATERIELLE POUR LES PERFORMANCES INTRODUCTION ARCHITECTURE GENERALE D'UNE MACHINE BASE DE DONNEES LA MACHINE TERADA TA DBC/1012 3.1 Introduction 3.2 Architecture physique de la machine DBC/1012 3.3 Répartition et accès aux données sur le disque 3.4 Les transactions dans le DBC/1012 213 213 216 216 216 221 224 227 3.5 La reprise sur panne 3.6 Le verrouillage dans le DBC/1012 LE SERVEUR S32 DE COPERNIQUE 4.1 Présentation de la machine 229 231 234 234 4.2 235 Caractéristiques de la machine fonctionnelle base de données CONCLUSION ANNEXES ANNEXE 1 ANNEXE 2 ANNEXE 3 158 160 161 163 165 168 169 239 RAPPELS SUR LE MODELE RELATIONNEL RAPPELS SUR LE LANGAGE SQL LES PRINCIPAUX SGBDR DE L'ETUDE 241 241 251 261 GLOSSAIRE 269 BIBLIOGRAPIDE ET REFERENCES 295 INDEX 299 TOP