Ver y analizar seguimientos con SQL Server ProfilerView and Analyze Traces with SQL Server Profiler

En este tema se aplica a: SíSQL Servernobase de datos de SQL Azurenoalmacenamiento de datos de SQL Azure ningún Almacenamiento de datos paralelosTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Utilice SQL Server ProfilerSQL Server Profiler para ver los datos de eventos capturados en un seguimiento.Use SQL Server ProfilerSQL Server Profiler to view captured event data in a trace. SQL Server ProfilerSQL Server Profiler muestra datos basados en propiedades de seguimiento definidas. displays data based on defined trace properties. Una manera de analizar datos del SQL ServerSQL Server consiste en copiarlos a otro programa, como SQL ServerSQL Server o el Asistente para la optimización del Motor de base de datosDatabase Engine .One way to analyze SQL ServerSQL Server data is to copy the data to another program, such as SQL ServerSQL Server or Motor de base de datosDatabase Engine Tuning Advisor. Motor de base de datosDatabase Engine El Asistente para la optimización puede usar un archivo de seguimiento que contenga lotes SQL y eventos RPC (llamada a procedimiento remoto) si el seguimiento incluye la columna de datos Text . 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. Para asegurarse de que se capturan las columnas y los eventos correctos para su utilización con el Asistente para la optimización del Motor de base de datosDatabase Engine , utilice la plantilla predefinida Tuning que se proporciona con el SQL Server ProfilerSQL Server Profiler.To make sure that the correct events and columns are captured for use with Motor de base de datosDatabase Engine Tuning Advisor, use the predefined Tuning template that is supplied with SQL Server ProfilerSQL Server Profiler.

Cuando abra un seguimiento mediante el SQL Server ProfilerSQL Server Profiler, no es necesario que el archivo de seguimiento tenga la extensión de archivo .trc si se creó mediante el SQL Server ProfilerSQL Server Profiler o los procedimientos almacenados del sistema de Seguimiento de 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 Profiler también puede leer archivos .log de Seguimiento de SQL y archivos de scripts SQL genéricos. can also read SQL Trace .log files and generic SQL script files. Si abre un archivo .log de Seguimiento de SQL que no tiene la extensión .log, por ejemplo, trace.txt, deberá especificar SQLTrace_Log como formato del archivo.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.

Puede configurar el formato de visualización de la fecha y hora del SQL Server ProfilerSQL Server Profiler como ayuda en el análisis de seguimientos.You can configure the SQL Server ProfilerSQL Server Profiler date and time display format to assist in trace analysis.

Solución de problemas de los datosTroubleshooting Data

El SQL Server ProfilerSQL Server Profilerpermite solucionar problemas de datos mediante la agrupación de seguimientos o archivos de seguimiento según las columnas de datos 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. Algunos ejemplos son consultas que no se ejecutan satisfactoriamente o que tienen una cantidad excepcionalmente alta de lecturas lógicas.Examples of data you might troubleshoot are queries that perform poorly or that have exceptionally high numbers of logical read operations.

Puede buscar información adicional si guarda los seguimientos en tablas y utiliza Transact-SQLTransact-SQL para realizar consultas en los datos de eventos.Additional information can be found by saving traces to tables and using Transact-SQLTransact-SQL to query the event data. Por ejemplo, para determinar los eventos SQL:BatchCompleted con un tiempo de espera excesivo, ejecute lo siguiente: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

El servidor informa de la duración de un evento en microsegundos (10 ^-6 segundos) y de la cantidad de tiempo de CPU utilizado por el evento en milisegundos (10 ^-3 segundos).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). La interfaz gráfica de usuario de SQL Server ProfilerSQL Server Profiler muestra la columna Duración en milisegundos de manera predeterminada, pero cuando se guarda un seguimiento en un archivo o en una tabla de base de datos, el valor de la columna Duración se escribe en microsegundos.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.

Mostrar nombres de objetos al ver seguimientosDisplaying Object Names When Viewing Traces

Si quiere visualizar el nombre de un objeto en lugar de su identificador (Object ID), debe capturar las columnas de datos Server Name y Database ID junto con 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.

Si decide realizar una agrupación mediante la columna de datos Object ID , realícela primero mediante las columna de datos Server Name y Database ID , y luego mediante 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. Del mismo modo, si decide realizar una agrupación mediante la columna de datos Index ID , realícela primero mediante las columna de datos Server Name, Database IDy Object ID , y luego mediante 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. Es necesario que siga este orden ya que los Id. de objeto y de índice no son exclusivos entre servidores y bases de datos (ni entre objetos, en el caso de los Id. de índice).You must group in this order because object and index IDs are not unique among servers and databases (and among objects for index IDs).

Buscar eventos específicos en un seguimientoFinding Specific Events Within a Trace

Para encontrar y agrupar eventos en un seguimiento, siga estos pasos:To find and group events in a trace, follow these steps:

  1. Cree el seguimiento.Create your trace.

    • Una vez definida, capture las columnas de datos Event Class, ClientProcessIDy Start Time además de cualquier otra columna de datos que desee capturar.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. Para obtener más información, vea Crear un seguimiento (SQL Server Profiler).For more information, see Create a Trace (SQL Server Profiler).

    • Agrupe los datos capturados por la columna de datos Event Classy capture el seguimiento en un archivo o una tabla.Group the captured data by the Event Classdata column, and capture the trace to a file or table. Para agrupar los datos capturados, haga clic en la opción Organizar columnas de la pestaña Selección de eventos del cuadro de diálogo Propiedades de seguimiento.To group the captured data, click Organize Columns on the Events Selection tab of the Trace Properties dialog box. Para obtener más información, vea Organizar las columnas mostradas en un seguimiento (SQL Server Profiler).For more information, see Organize Columns Displayed in a Trace (SQL Server Profiler).

    • Inicie el seguimiento y deténgalo una vez pasado el tiempo apropiado o cuando se haya capturado el número de eventos.Start the trace and stop it after the appropriate time has passed or number of events have been captured.

  2. Busque los eventos de destino.Find the target events.

    • Abra el archivo o la tabla de seguimiento y expanda el nodo de la clase de evento que desee, por ejemplo, Deadlock Chain.Open the trace file or table, and expand the node of the desired event class; for example, Deadlock Chain. Para obtener más información, vea Abrir un archivo de seguimiento (SQL Server Profiler) o el Asistente para la optimización del Abrir una tabla de seguimiento (SQL Server Profiler).For more information, see Open a Trace File (SQL Server Profiler) or Open a Trace Table (SQL Server Profiler).

    • Busque en los datos de seguimiento hasta que encuentre los eventos que busca. Para facilitar la búsqueda, puede usar el comando Buscar del menú Edición de 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). Anote los valores de las columnas de datos ClientProcessID y Start Time correspondientes a los eventos de los que se realiza un seguimiento.Note the values in the ClientProcessID and Start Time data columns of the events you trace.

  3. Muestre los eventos en el contexto.Display the events in context.

    • Muestre las propiedades del seguimiento y agrupe por la columna de datos ClientProcessIDen lugar de Event Class .Display the trace properties, and group by the ClientProcessIDdata column rather than by the Event Class data column.

    • Expanda los nodos de cada Id. de proceso de cliente que desee ver.Expand the nodes of each client process ID you want to view. Realice una búsqueda manual en el seguimiento o utilice Buscar hasta que encuentre los valores de Start Timeanotados anteriormente de los eventos de destino.Search through the trace manually, or use Find until you find the previously noted Start Timevalues of the target events. Los eventos se muestran en orden cronológico con los demás eventos que pertenecen a cada identificador de proceso de cliente seleccionado.The events are displayed in chronological order with the other events that belong to each selected client process ID. Por ejemplo, los eventos Deadlock y Deadlock Chain, capturados dentro del seguimiento, aparecen inmediatamente después de los eventos SQL:BatchStartingevents within the expyed client process ID.For example, the Deadlock and Deadlock Chainevents, captured within the trace, appear immediately after the SQL:BatchStartingevents within the expanded client process ID.

    La misma técnica se puede emplear para buscar cualquier evento agrupado.The same technique can be used to find any grouped events. Una vez que haya encontrado los eventos que busca, agrúpelos por ClientProcessID, ApplicationNameu otra clase de eventos para ver la actividad relacionada en orden cronológico.Once you have found the events you seek, group them by ClientProcessID, ApplicationName, or another event class to view related activity in chronological order.

Ver tambiénSee Also

Ver un seguimiento guardado (Transact-SQL) View a Saved Trace (Transact-SQL)
sys.fn_trace_getinfo (Transact-SQL) sys.fn_trace_getinfo (Transact-SQL)
Ver información de un filtro (SQL Server Profiler) View Filter Information (SQL Server Profiler)
Ver información de un filtro (Transact-SQL) View Filter Information (Transact-SQL)
Abrir un archivo de seguimiento (SQL Server Profiler) Open a Trace File (SQL Server Profiler)
Abrir una tabla de seguimiento (SQL Server Profiler)Open a Trace Table (SQL Server Profiler)