Individuare le "query lente"in SQL Server
Spesso è necessario individuare quali query e store procedure sono particolarmente lente in SQL Server, inficiando significatamene sulle prestazioni delle nostre applicazioni. Mi è sempre stato di grande aiuto un fantastico tool, totalmente free, sp_whoisactive, che si è rivelato indispensabile per individuare e risolvere le problematiche che le numerose query, generate dai molti processi in concorrenza delle nostre applicazioni, creavano sul db server.
Per avere una fotografia istantanea di quello che sta succedendo sul server, basterà eseguire la store procedure
exec sp_whoisactive
Avremo una serie di informazioni sul tempo di esecuzione, sulle risorse allocate, su eventuali altre sessioni bloccanti e su moltissimi altri aspetti.
E' possibile specificare tutta una serie di parametri per affinare l'indagine, l'elenco completo si può ottenere usando il parametro @help=1
Io trovo particolarmente utile il parametro @get_plans = 1, che ci fornisce anche il query plan per trovare eventuali suggerimenti sul miglioramento della query e sull'introduzione di nuovi indici sulle tabelle coinvolte.
Insomma, spesso gli sviluppatori dovrebbero avere anche delle competenze specifiche di DBA, per ottimizzare le proprie applicazioni, questo tool può davvero aiutarci!