Ver y analizar seguimientos con SQL Server Profiler

Utilice SQL Server Profiler para ver los datos de eventos capturados en un seguimiento. SQL Server Profiler muestra datos basados en propiedades de seguimiento definidas. Una manera de analizar datos de SQL Server consiste en copiarlos a otro programa, como SQL Server o el Asistente para la optimización de Motor de base de datos. El Asistente para la optimización de Motor de base de datos puede utilizar un archivo de seguimiento que contenga lotes SQL y eventos RPC (llamada a procedimiento remoto) si el seguimiento incluye la columna de datos Text. Para asegurarse de que se capturan las columnas y los eventos correctos para su utilización con el Asistente para la optimización de Motor de base de datos, utilice la plantilla predefinida Tuning que se proporciona con el SQL Server Profiler.

Cuando abra un seguimiento mediante el SQL Server Profiler, no es necesario que el archivo de seguimiento tenga la extensión de archivo .trc si se creó mediante el SQL Server Profiler o los procedimientos almacenados del sistema de Seguimiento de SQL.

[!NOTA]

El SQL Server Profiler también puede leer archivos .log de Seguimiento de SQL y archivos de scripts SQL genéricos. 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.

Puede configurar el formato de visualización de la fecha y hora del SQL Server Profiler como ayuda en el análisis de seguimientos.

Solución de problemas de los datos

El SQL Server Profiler permite solucionar problemas de datos mediante la agrupación de seguimientos o archivos de seguimiento según las columnas de datos Duration, CPU, Reads o Writes. Algunos ejemplos son consultas que no se ejecutan satisfactoriamente o que tienen una cantidad excepcionalmente alta de lecturas lógicas.

Puede buscar información adicional si guarda los seguimientos en tablas y utiliza Transact-SQL para realizar consultas en los datos de eventos. Por ejemplo, para determinar los eventos SQL:BatchCompleted con un tiempo de espera excesivo, ejecute lo siguiente:

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

[!NOTA]

A partir de SQL Server 2005, el servidor informa de la duración del evento en microsegundos (una millonésima parte de un segundo o 10-6 segundos) y la cantidad de tiempo de CPU utilizado por el evento en milisegundos (una milésima de segundo o 10-3 segundos). En SQL Server 2005 y posterior, la interfaz gráfica de usuario de SQL Server Profiler muestra la columna Duration 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 Duration se escribe en microsegundos.

Mostrar nombres de objetos al ver seguimientos

Si desea 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.

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. 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 ID y Object ID, y luego mediante Index ID. 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).

Buscar eventos específicos en un seguimiento

Para encontrar y agrupar eventos en un seguimiento, siga estos pasos:

  1. Cree el seguimiento.

    • Una vez definida, capture las columnas de datos Event Class, ClientProcessID y Start Time además de cualquier otra columna de datos que desee capturar. Para obtener más información, vea Crear un seguimiento (SQL Server Profiler).

    • Agrupe los datos capturados por la columna de datos Event Classy capture el seguimiento en un archivo o una tabla. 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. Para obtener más información, vea Organizar las columnas mostradas en un seguimiento (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.

  2. Busque los eventos de destino.

    • Abra el archivo o la tabla de seguimiento y expanda el nodo de la clase de evento que desee, por ejemplo, Deadlock Chain. Para obtener más información, vea Abrir un archivo de seguimiento (SQL Server Profiler) o Abrir una tabla de seguimiento (SQL Server Profiler).

    • Busque en los datos del seguimiento hasta que encuentre los eventos que busca. Para facilitar la búsqueda, puede utilizar el comando Buscar del menú Edición del SQL Server Profiler. Anote los valores de las columnas de datos ClientProcessIDy Start Timecorrespondientes a los eventos de los que se realiza un seguimiento.

  3. Muestre los eventos en el contexto.

    • Muestre las propiedades del seguimiento y agrupe por la columna de datos ClientProcessIDen lugar de Event Class.

    • Expanda los nodos de cada Id. de proceso de cliente que desee ver. 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. Los eventos se muestran en orden cronológico con los demás eventos que pertenecen a cada identificador de proceso de cliente seleccionado. Por ejemplo, los eventos Deadlock y Deadlock Chain, capturados dentro del seguimiento, aparecen inmediatamente después de los eventos SQL:BatchStarting dentro del identificador de proceso de cliente expandido.

La misma técnica se puede emplear para buscar cualquier evento agrupado. Una vez que haya encontrado los eventos que busca, agrúpelos por ClientProcessID, Application Name u otra clase de evento para ver la actividad relacionada en orden cronológico.

Vea también

Tasks

Ver un seguimiento guardado (Transact-SQL)

Ver información de un filtro (SQL Server Profiler)

Ver la información del filtro (Transact-SQL)

Abrir un archivo de seguimiento (SQL Server Profiler)

Abrir una tabla de seguimiento (SQL Server Profiler)

Referencia

sys.fn_trace_getinfo (Transact-SQL)