Il corso SQL Server Performance Tuning e Query Optimization è un percorso avanzato dedicato a Database Administrator, SQL Developer, Data Engineer e professionisti IT che desiderano acquisire competenze specialistiche nell'analisi, diagnosi e ottimizzazione delle performance di Microsoft SQL Server.
Il percorso affronta in modo strutturato il funzionamento del Query Optimizer, la lettura e interpretazione degli execution plan, il ruolo delle statistiche e della cardinality estimation, la progettazione degli indici e l'individuazione delle query che generano il maggiore consumo di CPU, memoria e I/O.
Particolare attenzione viene dedicata alla capacità di distinguere i sintomi dalle reali cause di un problema prestazionale. I partecipanti imparano a utilizzare strumenti nativi come Query Store, Dynamic Management Views, execution plan e wait statistics per costruire una baseline, individuare regressioni e analizzare il comportamento del workload.
Il corso approfondisce inoltre le principali tecniche di query optimization, tra cui SARGability, gestione dei predicati, JOIN, aggregazioni, parameterization, parameter sniffing, statistiche, covering index, filtered index e strategie di riscrittura delle query.
Il percorso non si limita alla modifica delle singole query: vengono affrontati anche aspetti relativi a memoria, CPU, parallelismo, tempdb, locking, blocking e configurazione del database, così da fornire un metodo completo di troubleshooting delle performance SQL Server.
L'approccio è fortemente pratico. I partecipanti lavorano su query inefficienti e ambienti volutamente non ottimizzati, confrontando execution plan e metriche prima e dopo gli interventi.
Il corso è rivolto in particolare a:
- SQL Server Database Administrator;
- Database Administrator;
- SQL Developer;
- Database Developer;
- Data Engineer;
- BI Developer;
- Backend Developer;
- Application Developer;
- Performance Engineer;
- DevOps Engineer;
- Site Reliability Engineer;
- consulenti SQL Server;
- tecnici applicativi;
- responsabili database;
- professionisti responsabili delle performance di applicazioni basate su SQL Server;
- sviluppatori che desiderano approfondire la relazione tra codice T-SQL e Query Optimizer.
Al termine del corso i partecipanti saranno in grado di:
- comprendere il processo di compilazione e ottimizzazione delle query;
- interpretare execution plan stimati ed effettivi;
- riconoscere i principali operatori fisici;
- confrontare piani di esecuzione differenti;
- individuare errori di stima della cardinalità;
- comprendere il ruolo delle statistiche;
- analizzare statistiche e istogrammi;
- progettare indici clustered e nonclustered;
- utilizzare covering index;
- utilizzare filtered index;
- valutare indici multicolonna;
- individuare indici inutilizzati o ridondanti;
- scrivere query SARGable;
- individuare query con elevato consumo di risorse;
- utilizzare Query Store per rilevare regressioni;
- utilizzare DMVs per monitoraggio e tuning;
- comprendere il plan cache;
- analizzare parameter sniffing e parameter sensitivity;
- comprendere memory grant e spill;
- analizzare parallelismo;
- individuare blocking e principali wait;
- costruire una baseline prestazionale;
- applicare un processo strutturato di performance troubleshooting.
Modulo 1 – Query Processing e Performance Baseline
- Architettura di elaborazione delle query
- Baseline e strumenti di monitoring
Modulo 2 – Execution Plan Analysis
- Lettura degli Execution Plan
- Cardinality Estimation e Statistics
Modulo 3 – Indexing Strategy
- Index Architecture e Design
- Advanced Index Optimization
Modulo 4 – Query Optimization
- SARGability e Query Rewriting
- JOIN, Aggregazioni e Parameterization
Modulo 5 – Query Store e Workload Analysis
- Query Store e Performance Regression
- DMVs, Waits, Memory e Parallelism
Modulo 6 – Performance Troubleshooting
- Blocking, tempdb e Resource Bottlenecks
- Performance Tuning Project Work
Il corso utilizza una metodologia avanzata, diagnostica e fortemente laboratoriale.
L'obiettivo non è fornire una lista di "trucchi" di performance tuning, ma insegnare un metodo ripetibile per individuare le cause reali dei problemi.
Il modello didattico è:
Misurare → Analizzare → Formulare un'ipotesi → Intervenire → Misurare nuovamente
La metodologia comprende:
- spiegazioni tecniche;
- dimostrazioni live;
- analisi di execution plan;
- confronto tra estimated e actual rows;
- progettazione di indici;
- query rewriting;
- utilizzo di Query Store;
- analisi DMVs;
- troubleshooting;
- esercitazioni progressive;
- project work finale.
30% teoria – 70% laboratorio e troubleshooting
- Database Performance Lab
- Query problematiche
- Index Lab
- Statistics Lab
- Query Store Lab
- Blocking Lab
- Execution Plan Workbook
- Script DBA
- Performance Tuning Quick Reference
- Soluzioni docente
Il partecipante deve conoscere:
- SELECT;
- JOIN;
- GROUP BY;
- HAVING;
- subquery;
- CTE;
- stored procedure;
- INSERT;
- UPDATE;
- DELETE;
- indici a livello concettuale;
- database relazionali.
È inoltre consigliata esperienza con:
- SQL Server Management Studio;
- gestione di database SQL Server;
- stored procedure;
- query su dataset di dimensioni significative.
Verifica dell’apprendimento
- valutazione degli elaborati prodotti
- test finale
- eventuale project work
Attestato
Al termine del corso verrà rilasciato un attestato di frequenza se questa sia >=80% delle ore, oppure su richiesta un attestato di frequenza "positiva" cioè rafforzato dall'esito positivo del test finale.