Module 140
Administrer et exploiter des bases de données
Jour 3 - Performances (tablespace et vues)
# Objectifs du jour
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
Création d'un mindmap
-
Reprenez votre mindmap
-
Création d'un mindmap commun
# Création d'un mindmap
Création d'un mindmap
-
Reprenez votre mindmap
-
Création d'un mindmap commun
Correction du MPD
(Exercice 3.2)
Voir le corrigé sur gitbook :
# Correction du MLD
![](https://s3.amazonaws.com/media-p.slid.es/imports/2830377/n-4aeTL2/40b555d02e06994c467baf1d066e296f.png)
![](https://media0.giphy.com/media/78XCFBGOlS6keY1Bil/giphy.gif)
Tablespaces et ASM
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
Tablespaces et ASM
Les tablespaces permettent de :
- Optimiser la gestion des données, notamment en répartissant les données sur différents disques pour améliorer les performances
- Faciliter la sauvegarde et récupération
- Gestion des droits d'accès facilité
# Tablespaces et système ASM
Types de Tablespace
Tablespaces permanents et temporaires :
# Tablespaces et système ASM
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810758/pasted-from-clipboard.png)
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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810772/pasted-from-clipboard.png)
Types de Tablespace
Tablespaces permanents et temporaires :
# Tablespaces et système ASM
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810758/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810787/pasted-from-clipboard.png)
User Tablespaces : Données des tables et objets de la base de données
Commandes pour les tablespaces
# Tablespaces et système ASM
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810812/pasted-from-clipboard.png)
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) :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810819/pasted-from-clipboard.png)
Il est aussi possible de rendre le tablespace auto extensible :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810829/pasted-from-clipboard.png)
Commandes pour les tablespaces
# Tablespaces et système ASM
Pour ajouter un tablespace sur une table :
Modification d'une table :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810842/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810846/pasted-from-clipboard.png)
Ne pas oublier de changer les index relatifs aux tables :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810854/pasted-from-clipboard.png)
Système ASM
# 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.
Système ASM
# Tablespaces et système ASM
Avantages :
- Répartit automatiquement les fichiers de données sur les disques pour équilibrer la charge et optimiser les performances
- Facilite la gestion par rapport à des tablespaces : par exemple distribution automatique des fichiers lorsque des disques sont ajoutés ou supprimés.
- Offre plusieurs niveaux de redondance pour protéger les données contre les pannes matérielles.
# Vues et Vues matérialisées
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
# Vues et Vues matérialisées
Avantages :
- Permet de simplifier les requêtes complexes et ne pas avoir à les refaire à chaque fois
- Permet d'afficher et de cacher certaines données par rapport à une table et attribuer les droits sur la vue au lieu de la table
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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810893/pasted-from-clipboard.png)
Puis les droits sont attribués sur la vue et aucun droit sur la table !
Mise à jour d'une vue
# Vues et Vues matérialisées
Les instructions UPDATE de la vue doivent être traduites en mises à jour des tables :
- On peut interdire de modifier la vue : option WITH READ ONLY
- Ce n’est pas toujours possible, elle ne peut pas comporter :
- Des opérateurs ensemblistes (UNION, INTERSECT, EXCEPT)
- Une clause DISTINCT
- Des fonctions de groupe (SUM, AVG, COUNT, etc.).
- Des clauses `GROUP BY` ou `ORDER BY`.
- Des sous-requêtes
-
La mise à jour est possible uniquement si elle concerne une seule table
Mise à jour d'une vue
# Vues et Vues matérialisées
Exemple :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810902/pasted-from-clipboard.png)
Ne fonctionne pas car il y a deux tables !
Mise à jour d'une vue
# Vues et Vues matérialisées
Exemple :
Insertion fonctionnelle car une seule table !
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810917/pasted-from-clipboard.png)
WITH CHECK OPTION
# 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 :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810931/pasted-from-clipboard.png)
Voici l'exemple d'une insertion fonctionnelle :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810938/pasted-from-clipboard.png)
WITH CHECK OPTION
# Vues et Vues matérialisées
Et une insertion qui ne fonctionne pas :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810939/pasted-from-clipboard.png)
On obtient une erreur lors de l'insertion :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810940/pasted-from-clipboard.png)
Vues matérialisées
# 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 matérialisées
# Vues et Vues matérialisées
Exemple :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810949/pasted-from-clipboard.png)
Pour déclencher le rafraichissement :
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810952/pasted-from-clipboard.png)
Types de rafraichissement
# Vues et Vues matérialisées
Complete Refresh : Tout est rafraichi à chaque demande (type par défaut)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810954/pasted-from-clipboard.png)
Fast Refresh : Seule la différence est rafraichie à chaque demande
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810960/pasted-from-clipboard.png)
On Commit : Pas de rafraichissement, la vue est mise à jour à chaque commit
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810964/pasted-from-clipboard.png)
Périodique : Rafraichit automatiquement selon les périodes définies
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2830377/images/11810969/pasted-from-clipboard.png)
# Exercices exercices clusters et vues
Exercices clusters et vues
- Exercices du chapitre 3
(de 3.1 à 3.3) - À terminer pour la prochaine fois
- Voir les consignes sur le gitbook :
![](https://s3.amazonaws.com/media-p.slid.es/imports/2830377/n-4aeTL2/40b555d02e06994c467baf1d066e296f.png)
# Travail pour la prochaine fois
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 !
![](https://s3.amazonaws.com/media-p.slid.es/imports/2830377/n-4aeTL2/83205272add4bc963bb0832b221eef4e.gif)
![](https://s3.amazonaws.com/media-p.slid.es/imports/2830377/n-4aeTL2/b284b27a8e48e2cc590111ea014cb445.gif)
![](https://s3.amazonaws.com/media-p.slid.es/imports/2830377/n-4aeTL2/abfea8ea8b3de57762a7bf693d0a9dea.gif)
M140 - Jour 3
By paranor
M140 - Jour 3
- 92