REPUBLIQUE DU SENEGAL
courants Un peuple – un but – une foi
PLAN DU TRAVAIL MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE ET DE
L’INNOVATION DIRECTION GENERALE DE L’ENSEIGNEMENT SUPERIEUR PRIVE
s
é et INTRODUCTION
sller
et les ECOLE SUPERIEURE DE TECHNOLOGIE ET DE MANAGEMENT
mances
et non-
ec
es
ffre
Ⅰ THEME : Optimisation des performances dans SQL Server : Exploration des stratégies d'indexation
pour améliorer les performances des
SKTOP- requêtes. Utilisation des outils de profilage et de surveillance pour identifier et
filer,
té, les Ⅱ résoudre les goulots d'étranglement de performance
Présenté par : Sous la supervision de :
ts
atalogues
r gérer
iews Ⅲ - Annour Ahmat
- Saleh Ousman Ali
M.Bakary Mane
mettant - MAKOUMBOU jeremie Jean Batiste
DMVs
Ⅳ - Mahamat Tahir Issakha
- Abakar Ali Dicko
- Mame gueye Sene
CONCLUSION - TSINGA jerome
- Djimbi Achille Junior
INTRODUCTION
courants
I/ Configuration de l'environnement et les problèmes de performance les
plus courants
PLAN DU TRAVAIL
s a) Configuration de l'environnement de développement
b) Les problèmes de performance les plus courants
é et INTRODUCTION
sller
et les
II/ Stratégies d'indexation
mances
et non-
ec
es
ffre
Ⅰ c) Introduction aux types d'index
d) Création d'index clustered et non- clustered
SKTOP-
Ⅱ
III/ Outils de profilage et de surveillance
filer,
té, les e) Utilisation de SQL Server Profiler
ts
atalogues
Ⅲ
IV/ Résolution des Goulots d'Étranglement Identifiés et Optimisation des
r gérer
iews requêtes
mettant f) Goulots d'Étranglement
DMVs
Ⅳ g) Optimisation des requêtes
CONCLUSION CONCLUSION
INTRODUCTION
rants
L'optimisation des performances dans SQL Server est essentielle pour assurer que les
bases de données fonctionnent de manière efficace et sans interruption. Ce guide a
INTRODUCTION
pour objectif de fournir une exploration détaillée des stratégies d'indexation et des
les
outils de profilage et de surveillance pour améliorer les performances des requêtes
nces
non-
e
Ⅰ SQL Server. L'objectif principal de ce projet est d'améliorer les performances des
TOP- requêtes SQL Server en :
r,
les Ⅱ -Identifiant et appliquant des stratégies d'indexation efficaces pour accélérer l'accès
aux données.
ogues
érer
s Ⅲ -Utilisant des outils de profilage et de surveillance pour détecter et résoudre les
goulots d'étranglement de performance.
ant -Assurant une maintenance continue et proactive pour maintenir des performances
Vs
Ⅳ optimales.
CONCLUSION
s I/ Configuration de l'environnement et les problèmes de performance les plus courant
s
a) Configuration de l'environnement de développement
Ⅰ
-
Ⅱ \
s
Ⅲ
Ⅳ
CLUSION
s
s
n- Ⅰ
Ⅱ
Ⅲ
s
Ⅳ
ONCLUSION
a) Les problèmes de performance les plus courants
Indexation Inadéquate
-Absence d'Index : Les requêtes peuvent devenir très lentes si les colonnes utilisées dans les
t clauses WHERE, les jointures ou les tris ne sont pas indexées.
rt les
-Index Redondants : Trop d'index peuvent ralentir les opérations de mise à jour, d'insertion et
nces
non-
e
de suppression. Ⅰ
-Index Fragmentés : La fragmentation des index peut entraîner des temps de réponse plus
r, Ⅱ longs.
Problèmes de Concurrence
Ⅲ
s
-Verrous Bloquants : Les transactions longues peuvent provoquer des blocages et des verrous,
MVs
Ⅳ affectant les performances globales.
-Contention des Ressources : Plusieurs processus concurrents peuvent se battre pour les
CONCLUSION mêmes ressources, entraînant des ralentissements.
Problèmes de Réseau
-Latence Réseau : La latence dans la communication réseau peut ralentir les transactions entre
les clients et le serveur SQL.
-Bande Passante Insuffisante : Une bande passante limitée peut entraîner des goulots
d'étranglement lors du transfert de grandes quantités de données.
Problèmes de Ressources Système
Ⅰ
Ⅱ -Surcharge du CPU : Une utilisation excessive du CPU peut ralentir les opérations SQL.
Ⅲ -Mémoire Insuffisante : Un manque de mémoire peut forcer SQL Server à utiliser le disque
pour le stockage temporaire, ce qui est beaucoup plus lent.
Ⅳ -Problèmes d'E/S : Des goulots d'étranglement des E/S de disque peuvent affecter les
performances de lecture et d'écriture.
SION
II/ Stratégies d'indexation
nts
a) Introduction aux types d'index
Types d'Index
-Index Clustered : Un index clustered trie les données de la table en fonction des
s
colonnes de l'index. Chaque table ne peut avoir qu'un seul index clustered, car les
s
n- lignes de données elles-mêmes sont stockées dans l'ordre de l'index.
P- -Index Non-Clustered : Un index non-clustered crée une structure séparée de la table
de données avec des références aux lignes de données. Une table peut avoir plusieurs Ⅱ
index non-clustered.
ues
r Ⅲ -Index Filtrés : Un index filtré est un index non-clustered avec une clause WHERE. Il
est utile pour les colonnes avec beaucoup de valeurs nulles ou pour des plages de
t
Ⅳ valeurs spécifiques.
-Index Composites : Un index composite inclut plusieurs colonnes. Il est
particulièrement utile lorsque les requêtes filtrent sur plusieurs colonnes.etc
ONCLUSION
Création d'index
-Création d’un index clustered sur la colonne IdCli de la table client, voici la commande SQL
Création d’un index non-clustered sur les colonnes nom_cli et ville de la table client
Ⅱ
Ⅲ
Ⅳ
USION
s
III/ Outils de profilage et de surveillance
SQL propose divers outils de surveillances de ses bases de données. Ces outils aident à
capturer et analyser les évènements de performance, fournir des recommandations
d’optimisation, comparer les performances entre versions, enregistrer les évènements et
erreurs, et vérifier la cohérence des bases de données.
1. Utilisation de SQL Server Profiler : SQL Server Profiler permet de capturer et surveiller les
s événements SQL Server en temps réel. C’est un outil essentiel pour analyser les performances
des requêtes, diagnostiquer les problèmes et déboguer les applications SQL Server. Il offre Ⅲ
une vue détaillée des opérations exécutées par le serveur.
Ⅳ
CLUSION
Utilisation de SQL Server Profiler
nts
Accéder à SQL Server Profiler : Dans le menu Outils, sélectionner SQL Server Profiler.
on-
P-
ues
r Ⅲ
Ⅳ
CONCLUSION
Créer une Nouvelle Trace : Aller dans Fichier > Nouvelle trace pour configurer une nouvelle
session de traçage et Configuration des Événements : Sélectionner les événements à surveiller
on-
Ⅲ
Ⅳ
CONCLUSION
Démarrer la Trace : Cliquez sur Exécuter pour commencer la capture des événements.
on-
Ⅲ
Ⅳ
CONCLUSION
IV/ Résolution des Goulots d'Étranglement Identifiés et Optimisation des requêtes
f)
Comprendre les goulots d’étranglement des bases de données
Les goulots d’étranglement des bases de données désignent des
points d’encombrement ou des limitations au sein d’un système de
base de données qui entravent ses performances et son efficacité
globales.
Types courants de goulots d’étranglement:
-Goulots d’étranglement du processeur
-Goulots d’étranglement de la mémoire
-Goulots d’étranglement du réseau :
-Goulots d’étranglement d’E/S disque
Causes courantes des goulots d’étranglement des bases de
données
-Ressources insuffisantes
-Requêtes mal optimisées
-Problèmes de concurrence Ⅳ
USION
Optimisation des requêtes
• 1. Utiliser les Index
• Créer des index sur les colonnes fréquemment utilisées dans les clauses WHERE, JOIN, et
ORDER BY.
• Éviter les index redondants et les index sur des colonnes avec peu de valeurs distinctes.
• 2. Écrire des Requêtes Efficaces
• Sélectionner uniquement les colonnes nécessaires au lieu d'utiliser SELECT *.
• Utiliser les jointures appropriées (INNER JOIN, LEFT JOIN, etc.) selon le contexte.
• Éviter les sous-requêtes imbriquées lorsque des jointures peuvent être utilisées.
• 3. Analyser et Optimiser les Plans d'Exécution
• Utiliser l'outil de plan d'exécution pour analyser comment SQL Server exécute vos
requêtes.
• Identifier les opérations coûteuses comme les scans de table et les jointures de type
boucle imbriquée.
Exemple de Requête Optimisée
• -- Avant optimisation
• SELECT * FROM Orders
• WHERE YEAR(OrderDate) = 2025;
• -- Après optimisation
• SELECT OrderID, CustomerID, OrderDate, TotalAmount
• FROM Orders
• WHERE OrderDate >= '2025-01-01' AND OrderDate < '2026-01-01';
• 4. Gérer les Transactions
• Minimiser la durée des transactions pour réduire les verrous et les blocages.
• Utiliser les niveaux d'isolation appropriés pour équilibrer la concurrence et la cohérence des
données.
• 5. Utiliser les Fonctions Intégrées
• Préférer les fonctions intégrées de SQL Server pour les opérations courantes (par exemple,
ROW_NUMBER(), RANK(), etc.).
• Éviter les fonctions scalaires définies par l'utilisateur dans les clauses WHERE et JOIN.
• 6. Maintenance de la Base de Données
• Mettre à jour les statistiques régulièrement pour aider l'optimiseur de requêtes.
• Défragmenter les index pour améliorer les performances de lecture.
• 7. Optimiser les Requêtes Complexes
• Diviser les requêtes complexes en étapes intermédiaires avec des tables temporaires si
nécessaire.
• Utiliser les vues indexées pour les requêtes fréquemment exécutées avec des agrégations
complexes.
CONCLUSION
L'optimisation des performances dans SQL Server est essentielle pour assurer la rapidité et
l'efficacité des bases de données, indispensables au bon fonctionnement des applications et
services. L'exploration des stratégies d'indexation, comme la création d'index clustered et non-
clustered, permet d'améliorer la vitesse d'accès aux données et de réduire les temps de
recherche. L'utilisation d'outils de profilage et de surveillance, tels que SQL Server Profiler,
aide à identifier les requêtes lentes et les verrous, facilitant ainsi la résolution des goulots
d'étranglement. Ces outils offrent une vision claire des performances en temps réel,
permettant d'apporter des ajustements précis et efficaces.
CONCLUSION