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

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

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.

Types de Tablespace

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

Commandes pour les tablespaces

# 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 :

Commandes pour les tablespaces

# 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 :

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.

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 :

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 !

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 :

Voici l'exemple d'une insertion fonctionnelle :

WITH CHECK OPTION

# Vues et Vues matérialisées

Et une insertion qui ne fonctionne pas :

On obtient une erreur lors de l'insertion :

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 :

Pour déclencher le rafraichissement :

Types de rafraichissement

# Vues et Vues matérialisées

Complete Refresh : Tout est rafraichi à chaque demande (type par défaut)

Fast Refresh : Seule la différence est rafraichie à chaque demande

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

Exercices clusters et vues

  • Exercices du chapitre 3
    (de 3.1 à 3.3)
  • À terminer pour la prochaine fois
  • Voir les consignes sur le gitbook :
# Travail pour la prochaine fois

Travail pour la prochaine fois

Merci de votre attention 😊
Bonne fin de journée !

M140 - Jour 3

By paranor

M140 - Jour 3

  • 92