Home Page Home Page Tips & Tricks Utilizzare il SQL Server Profiler con i filtri

Utilizzare il SQL Server Profiler con i filtri


Chi di voi non conosce il SQL Profiler ? Per chi sviluppa su SQL Server è uno strumento indispensabile che consente banalmente di fare un dump di tutti i comandi inviati al server SQL. E' un ottimo strumento di analisi ma non solo, consente infatti di scoprire, oltre ai nostri comandi, anche comandi interni di SQL Server non documentati, comandi di cui spesso si ignora addirittura l'esistenza.

Anche se l'utente privilegiato di SQL Profiler dovrebbe essere il DBA, spesso non tutti i Developer hanno un DBA a disposizione e quindi devono cavarsela da soli. Dopo averlo avviato, SQL Profiler farà un dump di tutti i comandi appartenenti ai gruppi eventi selezionati di default. Qui di seguito si può vedere una screenshot:



Naturalmente è possibile in base alle proprie esigenze aggiungere o rimuovere ulteriori eventi.

Svolgono un ruolo fondamentale invece i filtri. Con essi infatti è possibile filtrare e quindi visualizzare solo i comandi più interessanti. Questa attività ci consente di migliorare la nostra applicazione aumentando spesso e volentieri le prestazioni ed eliminando i colli di bottiglia (bottlenecks).

Per visualizzare la lista dei filtri disponibili è possibile fare File->Proprietà dal menù di SQL Profiler e selezionare l'apposita linguetta "Filtri". E'possibile aggiungere o rimuovere filtri solo quando il profiler è in stato "fermo" o in "pausa".
Alcuni fra i filtri che uso più spesso sono il loginname e la duration. All'avvio di SQL Profiler sarà possibile impostare già da subito i filtri.

Imposto quindi i due filtri in questo modo:

LoginName = contoso

Duration >= 500



Dopo aver premuto Ok, SQL Profiler visualizzerà tutte le operazioni svolte dal Login contoso e che richiedono per l'elaborazione più di 500 millisecondi. Molto probabilmente le query con un tempo di esecuzione così alto sono scritte male e magari è necessario riscriverle o creare o ricreare degli indici più efficienti sulla tabelle colpite dalle query.

E' possibile quindi con SQL Profiler concentrarsi su particolari rami dell'applicazione in modo da risolvere e rilevare potenziali problemi di security o di performance così come indicato nella screenshot seguente dove una query di aggregazione dati ha impiegato circa 1200 millisecondi:



E' da qui che inizia l'attività di indagine per scoprire da cosa è causato un tempo di esecuzione così lungo. Buon lavoro !

Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5