Schedulare una traccia di Profiler
SQL Server Profiler è uno strumento indispensabile per il troubleshooting di SQL Server ma al tempo stesso attivare un monitoraggio ha un costo in termini di risorse.
Per questo motivo una traccia dovrebbe essere mantenuta attiva per il tempo strettamente necessario sia per non gravare il database server di un onere aggiuntivo, che per evitare di dover analizzare una quantità esagerata di informazioni. Ma come fare a conciliare questi aspetti quando a dover essere tenuta sotto controllo è una attività che avviene di notte e non abbiamo nessuna intenzione di svegliarci alle 3:00 per fare un salto in ufficio ad attivare la traccia di Profiler?
Una prima soluzione può essere quella di chiedere alla guardia notturna il favore di eseguire l'attività, ma dovremmo prima istruirlo su cosa fare e ciò potrebbe rivelarsi più costoso che non svegliarsi nel cuore della notte. Una soluzione probabilmente migliore è quella di utilizzare uno script che, utilizzando l''istruzione sp_trace_setevent definisca quali eventi monitorare.
Una funzionalità poco nota di Profiler è quella di creare per noi questo script; è possibile infatti utilizzare la GUI per definire gli eventi, applicare i filtri necessari, impostare tutte le proprietà necessarie e, una volta avviata la traccia (che possiamo anche fermare immediatamente), possiamo selezionare dal menù il comando File -> Export -> Script Trace Definition -> For SQL Server 2005 e ottenere lo script necessario per avviare la cattura degli eventi. Possiamo schedulare l'esecuzione di questo script all'orario che riteniamo opportuno ma dobbiamo anche ricordarci di prevedere una seconda schedulazione di un altro script per fermare la cattura della traccia. Per far questo possiamo copiare lo script generato da Profiler e modificarlo ponendo a 0 il quarto parametro dell'istruzione sp_trace_setevent.
Bye