1
Matériel
- Fonctionnement interne de SQL Server.
- Ressources physiques nécessaires : CPU, RAM, stockage.
- Configurer SQL Server (sp_configure et DBCC TRACE).
Travaux pratiques
Mesure des I/O du serveur physique et des caractéristiques du serveur logique.
2
Outils de diagnostic
- Journaux d'événement. DMV, DMF et DBCC.
- Analyseur de performances. Profiler et trace par défaut.
- Événements étendus et session de santé.
- Database Tuning Advisor.
- Utiliser le Query Store.
3
Stockage
- Fonctionnement du moteur de stockage et du cache.
- Journalisation des transactions (Checkpoint et LazyWriter).
- Types de stockage (fichiers, fileStream, FileTable).
- Structure interne des fichiers de données (extensions, pages, slots de ligne).
- Gestion des fichiers et groupes de fichiers.
Travaux pratiques
Création d'une base multifichiers et migration des données.
4
Modèle de données
- Règles d'or : redondance, "NULL" et mise à jour.
- Choix des types de données.
- Importance de l'efficacité d'une clé.
- Combattre la redondance et le "NULL".
- Qualité des données.
- Faut-il dénormaliser ?
Travaux pratiques
Comparer deux modèles.
5
Optimiser les requêtes
- Fonctionnement de l'optimiseur.
- Statistiques et plan de requêtes.
- Estimateur de cardinalité.
- Indexation rowstore, columstore et "cherchabilité".
- Index XML, spatial et textuel.
- Utilisation des tables en mémoire (In Memory OLTP).
- Maintenance des statistiques et index.
Travaux pratiques
Comparaison d'écritures d'une même requête.
6
Coder pour la performance
- Code itératif vs code ensembliste.
- Transact SQL ou SQLCLR ?
- Bonnes pratiques d'écriture des routines (UDF, déclencheurs, procédures).
- Transactions, verrouillage et gestion des niveaux d'isolation.
- Déclencheurs et performances.
- Comment éradiquer les curseurs ?
Travaux pratiques
Réaliser une procédure de calcul et une fonction utilisateur.
7
Gérer la forte volumétrie
- Very Large DataBase (VLDB).
- Partitionnement des tables et index.
- La dénormalisation : colonnes calculées, vues indexées, déclencheurs.
- Compression des données.
- Maintenance "On Line".
- Utilisation du "In Memory".
- Collecteur de données.
- Profiler les utilisateurs avec le "Resource Governor".