Administrer et exploiter des bases de données
Jour 3 - Performances (tablespace et vues)
# Objectifs du jour
Création d'un Mindmap commun (récap semaine 1 et semaine 2)
Correction du MPD
Présentation des tablespaces et système ASM
Présentation des vues et vues matérialisées
Exercices sur les tablespaces
Exercices sur les vues
# Création d'un mindmap
Reprenez votre mindmap
Création d'un mindmap commun
# Création d'un mindmap
Reprenez votre mindmap
Création d'un mindmap commun
Voir le corrigé sur gitbook :
# Correction du MLD
Un tablespace est un espace qui contient les objets stockés dans la base de données comme les tables, les index ou les vues matérialisées.
Ils permettent de gérer le stockage physique des données.
Un tablespace est composé d'au moins un datafile, c'est-à-dire un fichier de données qui est physiquement présent sur le serveur à l'endroit stipulé lors de sa création.
# Tablespaces et système ASM
Les tablespaces permettent de :
# Tablespaces et système ASM
Tablespaces permanents et temporaires :
# Tablespaces et système ASM
Ce tablespace n'est pas destiné à accueillir des objets de la base de données et son usage est réservé au système pour les opérations SQL complexes, comme les jointures ou les tris.
Tablespaces permanents et temporaires :
# Tablespaces et système ASM
SYSTEM : Dictionnaire de données critiques pour le fonctionnement de la BDD.
SYSAUX : TS auxiliaire conçu pour alléger la charge du tablespace SYSTEM.
Undo : réservé à l'annulation des commandes DML (UPDATE, INSERT, etc.), Ex : ROLLBACK
User Tablespaces : Données des tables et objets de la base de données
# Tablespaces et système ASM
Création d'un tablespace :
Ajouter un fichier de données à un tablespace existant (augmente l'espace du tablespace et optimise l’utilisation des disques) :
Il est aussi possible de rendre le tablespace auto extensible :
# Tablespaces et système ASM
Pour ajouter un tablespace sur une table :
Modification d'une table :
Ne pas oublier de changer les index relatifs aux tables :
# Tablespaces et système ASM
Le système ASM (Automatic Storage Management) d'Oracle est une fonctionnalité qui simplifie la gestion du stockage pour les bases de données Oracle. Pour faire simple, il créé et gère automatiquement les fichiers physiques pour les répartir logiquement entre des disques (disques physiques, des partitions ou des volumes RAID).
Un groupe de disques ASM est un ensemble de disques physiques que ASM gère comme une seule entité. Les données de la base de données sont réparties sur ces disques pour assurer une gestion efficace et équilibrée de l'espace et des performances.
ASM supporte la redondance des données ce qui assure la protection des données contre la perte due à des défaillances de disque.
# Tablespaces et système ASM
# Vues et Vues matérialisées
Une vue est simplement une requête SQL qui est stocké dans la base de données. Ce n'est pas le résultat qui est stocké mais uniquement la requête.
Lorsque l'on appelle la vue, la requête est à nouveau déclenchée.
# Vues et Vues matérialisées
Exemple de vue sur le schéma HR : Nous voulons laisser la possibilité de voir les employés, mais l'on souhaite cacher la colonne du salaire.
Puis les droits sont attribués sur la vue et aucun droit sur la table !
# Vues et Vues matérialisées
La mise à jour est possible uniquement si elle concerne une seule table
# Vues et Vues matérialisées
Exemple :
Ne fonctionne pas car il y a deux tables !
# Vues et Vues matérialisées
Exemple :
Insertion fonctionnelle car une seule table !
# Vues et Vues matérialisées
L'option WITH CHECK OPTION dans une vue garantit que toutes les modifications effectuées via la vue respectent les conditions définies dans la clause WHERE de cette vue, assurant ainsi que les données insérées ou mises à jour restent cohérentes avec les critères de la vue.
Prenons la vue suivante :
Voici l'exemple d'une insertion fonctionnelle :
# Vues et Vues matérialisées
Et une insertion qui ne fonctionne pas :
On obtient une erreur lors de l'insertion :
# Vues et Vues matérialisées
Pour les vues matérialisées, c'est le même principe sauf que c'est directement le résultat qui est stocké. Ce qui permet de consulter rapidement les données sans avoir à exécuter la requête à chaque fois.
Elles permettent notamment des gains de performance en évitant de recalculer tous les résultats et elles diminuent la charge sur les tables sources, surtout lorsqu'elles contiennent des millions de lignes.
Les vues matérialisées doivent être rafraîchies pour refléter les nouvelles données des tables sous-jacentes.
Souvent utilisées dans les environnements de décisionnel (data warehousing) où les performances de lecture sont critiques et les données ne changent pas fréquemment.
# Vues et Vues matérialisées
Exemple :
Pour déclencher le rafraichissement :
# Vues et Vues matérialisées
On Commit : Pas de rafraichissement, la vue est mise à jour à chaque commit
Périodique : Rafraichit automatiquement selon les périodes définies
# Exercices exercices clusters et vues
# Travail pour la prochaine fois
Exercice sur les tablespaces (ex 3.1)
Exercices sur les vues (ex 3.2 et ex 3.3)
Mettre à jour ses notes
Mettre à jour le Mindmap
Révision (Flashcards) : [https://app.wooflash.com/join/OS7OUAGS](https://app.wooflash.com/join/OS7OUAGS?from=1)
Merci de votre attention 😊
Bonne fin de journée !