Visualizzare e analizzare le tracce con SQL Server Profiler

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Usare SQL Server Profiler per visualizzare i dati di evento acquisiti in una traccia. SQL Server Profiler consente di visualizzare i dati in base alle proprietà definite della traccia. Un modo per analizzare i dati di SQL Server consiste nel copiare i dati in un altro programma, ad esempio SQL Server o Ottimizzazione guidata motore di database. Se la colonna di dati Text è inclusa nella traccia, Ottimizzazione guidata motore di database può usare un file di traccia contenente eventi correlati a batch SQL e RPC (Remote Procedure Call). Per assicurarsi di acquisire gli eventi e le colonne corretti da usare con Ottimizzazione guidata motore di database, usare il modello di ottimizzazione predefinito disponibile in SQL Server Profiler.

Quando si apre una traccia con SQL Server Profiler, non è necessario specificare l'estensione di file trc per il file di traccia, se tale file è stato creato da SQL Server Profiler o da stored procedure sistema di Traccia SQL.

Nota

SQL Server Profiler è anche in grado di leggere file con estensione log di Traccia SQL e file di script SQL generici. Per l'apertura di un file log di Traccia SQL senza estensione log, ad esempio trace.txt, specificare SQLTrace_Log come formato del file.

È possibile configurare il formato di visualizzazione della data e dell'ora di SQL Server Profiler per semplificare l'analisi delle tracce.

Risoluzione dei problemi relativi ai dati

SQL Server Profiler consente di risolvere i problemi relativi ai dati raggruppando le tracce o i file di traccia in base alle colonne di dati Duration, CPU, Reads o Writes. I dati che possono essere inclusi nella risoluzione dei problemi corrispondono a query con prestazioni insufficienti o che generano un numero estremamente elevato di operazioni di letture logiche.

È possibile isolare informazioni aggiuntive salvando le tracce in tabelle e usando istruzioni Transact-SQL per eseguire query nei dati di evento. Ad esempio, per individuare gli eventi SQL:BatchCompleted per i quali il tempo di attesa è stato eccessivo, eseguire quanto segue:

SELECT  TextData, Duration, CPU  
FROM    trace_table_name  
WHERE   EventClass = 12 -- SQL:BatchCompleted events  
AND     CPU < (Duration * 1000)  

Nota

Il server indica la durata di un evento in microsecondi (10^-6 secondi) e la quantità di tempo della CPU usato dall'evento in millisecondi (10^-3 secondi). Nell'interfaccia utente grafica di SQL Server Profiler il valore della colonna Duration viene visualizzato in millisecondi per impostazione predefinita. Tuttavia, quando si salva una traccia in un file o in una tabella di database, il valore della colonna Duration viene scritto in microsecondi. Queste misurazioni sono per le query Transact-SQL (T-SQL).

Visualizzazione dei nomi degli oggetti durante la visualizzazione delle tracce

Per visualizzare il nome di un oggetto invece dell'identificatore dell'oggetto, ovveroObject ID, è necessario acquisire le colonne di dati Server Name e Database ID insieme alla colonna di dati Object Name .

Se si sceglie di basare il raggruppamento sulla colonna di dati Object ID assicurarsi di eseguire innanzitutto il raggruppamento in base alle colonne di dati Server Name e Database ID e quindi in base alla colonna di dati Object ID . . Analogamente, se si sceglie di basare il raggruppamento sulla colonna di dati Index ID , assicurarsi di eseguire innanzitutto il raggruppamento in base alle colonne di dati Server Name, Database IDe Object ID e quindi in base alle colonne di dati Index ID . È necessario attenersi a tale ordine durante il raggruppamento, poiché gli ID di oggetto e di indice non sono univoci nei server e nei database e negli oggetti relativi agli ID degli indici.

Individuazione di eventi specifici in una traccia

Per individuare e raggruppare gli eventi in una traccia, eseguire la procedura seguente:

  1. Creare la traccia.

    • Nella definizione della traccia includere le colonne di dati Event Class, ClientProcessIDe Start Time oltre alle altre colonne di dati che si desidera acquisire. Per altre informazioni, vedere Creare una traccia (SQL Server Profiler).

    • Raggruppare i dati acquisiti in base alla colonna di dati Event Classe salvare la traccia in un file o in una tabella. Per raggruppare i dati acquisiti, fare clic su Organizza colonne nella scheda Selezione eventi della finestra di dialogo Proprietà traccia. Per altre informazioni, vedere Organizzare le colonne visualizzate in una traccia (SQL Server Profiler).

    • Avviare la traccia e quindi arrestarla quando è trascorso l'intervallo di tempo appropriato o dopo l'acquisizione di un determinato numero di eventi.

  2. Determinare quali eventi si desidera individuare.

    • Aprire il file o la tabella di traccia ed espandere il nodo della classe di evento desiderata, ad esempio Deadlock Chain. Per altre informazioni, vedere Aprire un file di traccia (SQL Server Profiler) o Ottimizzazione guidata Aprire una tabella di traccia (SQL Server Profiler).

    • Eseguire una ricerca nei dati della traccia fino a individuare gli eventi desiderati. Per semplificare la ricerca dei valori desiderati nella traccia, scegliere Trova dal menu Modifica di SQL Server Profiler. Prendere nota dei valori delle colonne di dati ClientProcessID e Start Time degli eventi tracciati.

  3. Visualizzare gli eventi nel contesto.

    • Visualizzare le proprietà della traccia ed eseguire il raggruppamento in base alla colonna di dati ClientProcessIDanziché alla colonna di dati Event Class .

    • Espandere il nodo di ogni ID di processo client che si desidera visualizzare. Eseguire una ricerca manuale nella traccia oppure usare il comando Trova per individuare i valori Start Timedegli eventi desiderati, annotati in precedenza. Gli eventi vengono visualizzati in ordine cronologico con gli altri eventi che appartengono a ogni ID processo client selezionato. Ad esempio, gli eventi Deadlock e Deadlock Chain, acquisiti all'interno della traccia, vengono visualizzati immediatamente dopo gli eventi SQL:BatchStartingall'interno dell'ID processo client espanso.

È possibile utilizzare la stessa tecnica per individuare eventuali eventi raggruppati. Dopo avere trovato gli eventi desiderati, raggrupparli in base a ClientProcessID, ApplicationNameo a un'altra classe di evento, per visualizzare le attività correlate in ordine cronologico.

Vedi anche