Module 106

Interroger, traiter et assurer la maintenance des bases de données

Jour 5 - Performances (Contraintes et index)

# Objectifs du jour

Objectifs du jour

  • Requêtes SQL (UNION, GROUP BY et agrégation)

  • Mise à jour du Mindmap

  • Performances de la BDD

  • Exercice 4.1 : Présentation des index

  • Exercice 4.2 : Modification du script de création de la bdd magasin

# Correction exercice

Correction de l'exercice 3.1

  • Voir le corrigé sur le Gitbook des consignes d'exercices

# Correction exercice

Correction de l'exercice 3.2

  • Théorie restante sur les requêtes SQL

  • Correction de l'exercice 3.2 Voir le corrigé sur le Gitbook des consignes d'exercices

# Deux vérités, un mensonge

Deux vérités, un mensonge

INF1A

INF1B

  • Mise à jour du Mindmap
  • Pas aléatoire aujourd'hui, levez la main quand vous lisez ce texte, le dernier fera le mindmap !

Performance des BDD

Niveau matériel

  • Ralentissements fréquents car les données ne restent pas en cache
    • Augmenter la RAM
  • Opérations complexes prennent trop de temps à s'exécuter
    • Améliorer le CPU
  • Temps d’insertion ou de mise à jour trop long
    • Utiliser un disque plus rapide (SSD, RAID 0, etc.)
# Performances de la BDD - Matériel

Performance des BDD

Difficile de diagnostiquer sans surveillance

Les ralentissements peuvent être causés par plusieurs facteurs matériels liés entre eux (RAM, CPU, disques).

Par exemple, un manque de RAM peut provoquer une surcharge du disque en raison des lectures/écritures supplémentaires, rendant difficile l'identification directe de la cause sans outils de monitoring

# Performances de la BDD - Matériel
# Performances de la BDD - Matériel

Performance des BDD

Limites d'Oracle XE

  • Processeur : Utilisation limitée à 2 cœurs maximum

  • Mémoire : Limitation à 2 Go de RAM

  • Stockage : Capacité maximale de 12 Go pour les données utilisateur

Performance des BDD

Niveau logiciel

  • Principalement :
    • Optimiser les requêtes
      • Pas de SELECT *
      • Utiliser des jointures appropriées (éviter les jointures inutiles)
      • Filtrer directement au niveau de la BDD (WHERE)
    • Mettre des index (quand nécessaire, ne pas sur-indexer)
  • À savoir que d'autres améliorations au niveau logiciel peuvent exister :
    • Cluster
    • Vue matérialisées
    • Tablespace
    • Système ASM
# Performances de la BDD - Logiciel

Index

Quand indexer ?

  • Si la colonne est souvent mobilisée (utilisé dans un where, une recherche et tri)
  • Sur les FK - Si les jointures sont souvent utilisées ou contiennent beaucoup de données

 

# Performances de la BDD - Logiciel

Quand un index est-il automatiquement créé ?

  • Avec une contrainte PK
  • Avec une contrainte d'unicité
# Exercices index et clusters

Exercice 4.1

  • En groupe selon répartition
  • Voir la donnée sur le Gitbook des exercices :

Exercice 2.1 - Conclusion

Avantage des Index et Clusters

  • Optimise les performances de la base de données

Désavantage des Index et Clusters

  • Diminuent les performances lors des mises à jour des données
  • Utilise de l'espace disque

Choisir le bon type d'index pour optimiser au maximum la bdd

# Exercices index et clusters

Quand utiliser un index ou un cluster ?

  • Utilisez un index sur la clé étrangère comme solution par défaut pour optimiser les jointures.
# Exercices index et clusters
  • Réservez les clusters aux cas où :
    • Les performances des index sur FK ne suffisent pas à répondre aux besoins
    • Les jointures sont omniprésentes et très fréquentes
    • Les tables concernées sont volumineuses et rarement modifiées
  • En pratique, pour les jointures fréquentes, mais sans contrainte critique de performance, un index sur la FK est souvent suffisant​​​.

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

M106 - Jour 5

By paranor

M106 - Jour 5

  • 86