Vi è mai successo di avere il sito web aziendale talmente lento da essere inutilizzabile? Cosa sta succedendo? Avete mai aggiornato un’applicazione all’ultima versione di SQL Server e incontrato problemi di performance dovuti all’utilizzo di un diverso Piano di Esecuzione per determinate query? La scelta di un diverso piano di esecuzione può causare questi inconvenienti!
L’identificazione e la soluzione dei problemi di performance dovuti alla scelta di un diverso piano di esecuzione da parte del Query Optimizer, richiede molto tempo. In questi casi vi sarete chiesti “Quale era il piano di esecuzione precedente per questa query? Quello che garantiva ottime performance!”.
Nelle precedenti versioni di SQL Server era possibile rispondere a questa domanda attraverso Performance Data Collector, che però non permetteva di raccogliere metriche e statistiche dettagliate su tutti i piani di esecuzione utilizzati per una determinata query, ma soprattutto non permetteva di forzare uno specifico piano di esecuzione. La forzatura del piano di esecuzione per una determinata query era possibile solo attraverso l’implementazione di una Plan Guide oppure aggiungendo un Query Hint direttamente nel testo della query (operazione non sempre possibile, specialmente su applicazioni di terze parti per le quali non si dispone del codice sorgente oppure non si può modificarlo).
SQL Server 2016, con una nuova feature nota con il nome di Query Store, semplifica l’identificazione e la soluzione di questi problemi. Query Store memorizza tutti i piani di esecuzione utilizzati per una determinata query, cattura le statistiche relative alle performance di esecuzione, fornisce al DBA gli strumenti per forzare in modo estremamente semplice il piano di esecuzione per una determinata query.
Molto presto, SQL Server 2016 sarà sui vostri server e questa feature rappresenta un “must know”.
Per sapere come funziona Query Store, conoscere come vengono catturati i piani di esecuzione e come è possibile confrontarli per forzare quello ottimale, potete leggere questo articolo sul blog Microsoft MVP: SQL Server 2016 Query Store.
Vi segnalo anche la raccolta SQL Server Query Store su docs.com in cui potete trovare anche il link alla registrazione della sessione “SQL Server 2016 Query Store: Un nuovo modo di ottimizzare le query” tenuta da Saverio Lorenzini durante lo scorso SQL Saturday Parma 2015.
Buon divertimento!