Visualizzare e analizzare le tracce con SQL Server ProfilerView and Analyze Traces with SQL Server Profiler

Utilizzare SQL Server ProfilerSQL Server Profiler per visualizzare i dati eventi acquisiti in una traccia.Use SQL Server ProfilerSQL Server Profiler to view captured event data in a trace. SQL Server ProfilerSQL Server Profiler consente di visualizzare i dati in base alle proprietà definite della traccia. displays data based on defined trace properties. Per analizzare i dati di SQL ServerSQL Server è possibile copiarli in un altro programma, ad esempio SQL ServerSQL Server o Ottimizzazione guidata Motore di databaseDatabase Engine .One way to analyze SQL ServerSQL Server data is to copy the data to another program, such as SQL ServerSQL Server or Motore di databaseDatabase Engine Tuning Advisor. Motore di databaseDatabase Engine Se la colonna di dati Text è inclusa nella traccia, in Ottimizzazione guidata è possibile usare un file di traccia contenente eventi correlati a batch SQL e RPC (Remote Procedure Call). Tuning Advisor can use a trace file that contains SQL batch and remote procedure call (RPC) events if the Text data column is included in the trace. Per assicurarsi di acquisire gli eventi e le colonne corretti da utilizzare con Ottimizzazione guidata Motore di databaseDatabase Engine , utilizzare il modello di ottimizzazione predefinito disponibile in SQL Server ProfilerSQL Server Profiler.To make sure that the correct events and columns are captured for use with Motore di databaseDatabase Engine Tuning Advisor, use the predefined Tuning template that is supplied with SQL Server ProfilerSQL Server Profiler.

Quando si apre una traccia utilizzando SQL Server ProfilerSQL Server Profiler, non è necessario specificare l'estensione di file trc per il file di traccia, se tale file è stato creato da stored procedure sistema di SQL Server ProfilerSQL Server Profiler o di Traccia SQL.When you open a trace by using SQL Server ProfilerSQL Server Profiler, the trace file does not need to have the .trc file extension if the file was created by either SQL Server ProfilerSQL Server Profiler or SQL Trace system stored procedures.

Nota

SQL Server ProfilerSQL Server Profilerpuò anche leggere il file di log di traccia SQL e file script SQL generici. can also read SQL Trace .log files and generic SQL script files. Per l'apertura di un file log di Traccia SQL senza estensione log, ad esempio trace.txt, specificare SQLTrace_Log come formato del file.When opening a SQL Trace .log file that does not have a .log file extension, such as trace.txt, specify SQLTrace_Log as the file format.

È possibile configurare il formato di visualizzazione della data e dell'ora di SQL Server ProfilerSQL Server Profiler per semplificare l'analisi delle tracce.You can configure the SQL Server ProfilerSQL Server Profiler date and time display format to assist in trace analysis.

Risoluzione dei problemi relativi ai datiTroubleshooting Data

SQL Server ProfilerSQL Server Profilerconsente di risolvere i problemi relativi ai dati raggruppando le tracce o i file di traccia in base alle colonne di dati Duration, CPU, Readso Writes .Using SQL Server ProfilerSQL Server Profiler, you can troubleshoot data by grouping traces or trace files by the Duration, CPU, Reads, or Writes data columns. 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.Examples of data you might troubleshoot are queries that perform poorly or that have exceptionally high numbers of logical read operations.

È possibile isolare informazioni aggiuntive salvando le tracce in tabelle e utilizzando istruzioni Transact-SQLTransact-SQL per eseguire query nei dati di evento.Additional information can be found by saving traces to tables and using Transact-SQLTransact-SQL to query the event data. Ad esempio, per individuare gli eventi SQL:BatchCompleted per i quali il tempo di attesa è stato eccessivo, eseguire quanto segue:For example, to determine which SQL:BatchCompleted events had excessive wait time, execute the following:

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).The server reports the duration of an event in microseconds (10^-6 seconds) and the amount of CPU time used by the event in milliseconds (10^-3 seconds). Nell'interfaccia utente grafica di SQL Server ProfilerSQL Server Profiler il valore della colonna Duration viene visualizzato in millisecondi. Tuttavia, quando si salva una traccia in un file o in una tabella di database, il valore della colonna Duration viene scritto in microsecondi.The SQL Server ProfilerSQL Server Profiler graphical user interface displays the Duration column in milliseconds by default, but when a trace is saved to either a file or a database table, the Duration column value is written in microseconds.

Visualizzazione dei nomi degli oggetti durante la visualizzazione delle tracceDisplaying Object Names When Viewing Traces

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 .If you wish to display the name of an object rather than the object identifier (Object ID), you must capture the Server Name and Database ID data columns along with the Object Name data column.

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 .If you choose to group by the Object ID data column, make sure you group by the Server Name and Database ID data columns first, and then by the Object ID data column. . 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 .Similarly, if you choose to group by the Index ID data column, make sure you group by the Server Name, Database ID, and Object ID data columns first, and then by the Index ID data columns. È 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.You must group in this order because object and index IDs are not unique among servers and databases (and among objects for index IDs).

Individuazione di eventi specifici in una tracciaFinding Specific Events Within a Trace

Per individuare e raggruppare gli eventi in una traccia, eseguire la procedura seguente:To find and group events in a trace, follow these steps:

  1. Creare la traccia.Create your trace.

    • Nella definizione della traccia includere le colonne di dati Event Class, ClientProcessID e Start Time oltre alle altre colonne di dati che si desidera acquisire.When defining the trace, capture the Event Class, ClientProcessID, and Start Time data columns in addition to any other data columns you want to capture. Per altre informazioni, vedere Creare una traccia (SQL Server Profiler).For more information, see Create a Trace (SQL Server Profiler).

    • Raggruppare i dati acquisiti in base alla colonna di dati Event Class e salvare la traccia in un file o in una tabella.Group the captured data by the Event Classdata column, and capture the trace to a file or table. Per raggruppare i dati acquisiti, fare clic su Organizza colonne nella scheda Selezione eventi della finestra di dialogo Proprietà traccia.To group the captured data, click Organize Columns on the Events Selection tab of the Trace Properties dialog box. Per altre informazioni, vedere Organizzare le colonne visualizzate in una traccia (SQL Server Profiler).For more information, see Organize Columns Displayed in a Trace (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.Start the trace and stop it after the appropriate time has passed or number of events have been captured.

  2. Determinare quali eventi si desidera individuare.Find the target events.

    • Aprire il file o la tabella di traccia ed espandere il nodo della classe di evento desiderata, ad esempio Deadlock Chain.Open the trace file or table, and expand the node of the desired event class; for example, 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).For more information, see Open a Trace File (SQL Server Profiler) or Open a Trace Table (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 ProfilerSQL Server Profiler .Search through the trace data until you find the events for which you are looking (use the Find command on the Edit menu of SQL Server ProfilerSQL Server Profiler to help you find values in the trace). Prendere nota dei valori delle colonne di dati ClientProcessID e Start Time degli eventi tracciati.Note the values in the ClientProcessID and Start Time data columns of the events you trace.

  3. Visualizzare gli eventi nel contesto.Display the events in context.

    • Visualizzare le proprietà della traccia ed eseguire il raggruppamento in base alla colonna di dati ClientProcessIDanziché alla colonna di dati Event Class .Display the trace properties, and group by the ClientProcessIDdata column rather than by the Event Class data column.

    • Espandere il nodo di ogni ID di processo client che si desidera visualizzare.Expand the nodes of each client process ID you want to view. Eseguire una ricerca manuale nella traccia oppure usare il comando Trova per individuare i valori Start Timedegli eventi desiderati, annotati in precedenza.Search through the trace manually, or use Find until you find the previously noted Start Timevalues of the target events. Gli eventi vengono visualizzati in ordine cronologico con gli altri eventi che appartengono a ogni ID processo client selezionato.The events are displayed in chronological order with the other events that belong to each selected client process ID. 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.For example, the Deadlock and Deadlock Chainevents, captured within the trace, appear immediately after the SQL:BatchStartingevents within the expanded client process ID.

    È possibile utilizzare la stessa tecnica per individuare eventuali eventi raggruppati.The same technique can be used to find any grouped events. 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.Once you have found the events you seek, group them by ClientProcessID, ApplicationName, or another event class to view related activity in chronological order.

Vedere ancheSee Also

Visualizzare una traccia salvata (Transact-SQL) View a Saved Trace (Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL) sys.fn_trace_getinfo (Transact-SQL)
Visualizzare informazioni sui filtri ( SQL Server Profiler ) View Filter Information (SQL Server Profiler)
Visualizzare informazioni sui filtri ( Transact-SQL ) View Filter Information (Transact-SQL)
Aprire un File di traccia ( SQL Server Profiler ) Open a Trace File (SQL Server Profiler)
Aprire una tabella di traccia (SQL Server Profiler)Open a Trace Table (SQL Server Profiler)