Scenari per l'utilizzo di SQL Server Profiler

Il primo passaggio nell'utilizzo di SQL Server Profiler consiste nell'identificare i motivi per cui si desidera monitorare un'istanza di SQL Server. In questo argomento vengono descritti gli scenari tipici in cui è possibile utilizzare SQL Server Profiler per la raccolta di informazioni di traccia.

Gli scenari tipici per l'utilizzo di SQL Server Profiler comprendono:

  • Individuare le query con prestazioni peggiori

    Ad esempio, è possibile creare una traccia che acquisisce gli eventi relativi alle classi di evento delle categorie TSQL e Stored Procedure (RPC:Completed e SQL:BatchCompleted). Includere nella traccia tutte le colonne di dati, raggruppare in base a Duration e specificare i criteri per gli eventi. Ad esempio, se si specifica che il valore Duration dell'evento deve essere di almeno 10000 microsecondi, verranno esclusi dalla traccia gli eventi di durata inferiore. Se si desidera, è possibile incrementare il valore minimo di Duration. Per monitorare un solo database alla volta, specificare un valore per il criterio di evento Database ID.

  • Identificare la causa di un deadlock

    Ad esempio, è possibile creare una traccia che acquisisce gli eventi relativi alle classi di evento delle categorie TSQL e Stored Procedure (RPC:Starting e SQL:BatchStarting) e alle classi di evento della categoria Locks (Deadlock graph, Lock:Deadlock o Lock:Deadlock Chain). Includere nella traccia tutte le colonne di dati e raggruppare in base a Event Class. Per monitorare un solo database alla volta, specificare un valore per il criterio di evento Database ID. Se si specifica la classe di evento Deadlock graph, SQL Server Profiler produce una rappresentazione grafica del deadlock. Per ulteriori informazioni, vedere Analisi dei deadlock con SQL Server Profiler.

    Per visualizzare le connessioni interessate dal deadlock, eseguire una delle seguenti operazioni:

    • Aprire la traccia contenente i dati acquisiti, raggruppare i dati in base a ClientProcessID ed espandere entrambe le connessioni interessate dal deadlock.

    • Salvare i dati acquisiti in un file di traccia e aprire il file due volte in modo da visualizzarlo in due finestre distinte di SQL Server Profiler. Raggruppare i dati acquisiti in base a ClientProcessID ed espandere l'ID del processo client interessato dal deadlock. Ciascuna connessione in stato di deadlock è visualizzata in una finestra distinta. Affiancare le finestre in modo da visualizzare gli eventi che causano il deadlock. Per salvare i dati del grafico in un file, fare clic con il pulsante destro del mouse sull'evento deadlock e scegliere Estrai dati eventi.

  • Monitorare le prestazioni delle stored procedure

    Ad esempio, è possibile creare una traccia che acquisisce gli eventi relativi alle classi di evento della categoria Stored Procedure (SP:Completed, SP:Starting, SP:StmtCompleted e SP:StmtStarting) e alle classi di evento della categoria TSQL (SQL:BatchStarting e SQL:BatchCompleted). Includere nella traccia tutte le colonne di dati e raggruppare in base a ClientProcessID. Per monitorare un solo database alla volta, utilizzare il filtro relativo all'ID di database per specificare un valore per il criterio di evento Database ID. Analogamente, per monitorare una sola stored procedure alla volta, utilizzare il filtro relativo all'ID dell'oggetto per specificare un valore per il criterio di evento Object ID.

  • Controllare l'attività di SQL Server

    Ad esempio, se l'amministratore della protezione desidera conoscere il nome degli utenti connessi al server, è possibile creare una traccia di SQL Server Profiler che fornisce un record completo degli utenti che hanno eseguito l'accesso o si sono disconnessi dal server. Tali informazioni potranno essere utilizzate a scopi legali o tecnici.

    Creare una traccia selezionando l'evento Audit Login. Per restituire le informazioni appropriate, specificare le seguenti colonne di dati: EventClass (selezionata per impostazione predefinita), EventSubClass, LoginSID, LoginName.

  • Monitorare l'attività Transact-SQL per ogni singolo utente

    È possibile creare una traccia per l'acquisizione degli eventi relativi alle classi di evento Sessions, ExistingConnection e TSQL. Includere nella traccia tutte le colonne di dati, non specificare alcun criterio per gli eventi e raggruppare gli eventi acquisiti in base a DBUserName.

  • Raccogliere un campione rappresentativo di eventi per l'esecuzione di test di stress

    SQL Server Profiler è dotato del modello predefinito TSQL_Replay che è possibile utilizzare per eseguire operazioni di ottimizzazione iterative, ad esempio test di benchmark.

  • Raccogliere un campione di eventi per l'ottimizzazione della progettazione fisica del database tramite Ottimizzazione guidata Motore di database

    SQL Server Profiler è dotato di un modello predefinito per l'ottimizzazione, che raccoglie gli eventi Transact-SQL appropriati nell'output di traccia in modo che sia utilizzabile come carico di lavoro in Ottimizzazione guidata Motore di database.