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
- Aléatoire : https://spinthewheel.io/
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)
- Optimiser les requêtes
- À 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