Ver y analizar trazas con el Analizador de SQL Server
Utilice el SQL Server Profiler para ver datos de eventos capturados en una traza. El SQL Server Profiler muestra los datos en función de las propiedades de traza 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 Database Engine (Motor de base de datos). El Asistente para la optimización de Database Engine (Motor de base de datos) puede utilizar un archivo de seguimiento que contenga lotes SQL y eventos RPC (llamada a procedimiento remoto) si la traza incluye la columna de datos Text. Para obtener más información, vea Optimizar el diseño físico de las bases de datos. Para asegurarse de que se capturan las columnas y los eventos correctos para su utilización con el Asistente para la optimización de Database Engine (Motor de base de datos), utilice la plantilla predefinida Tuning que se proporciona con el SQL Server Profiler.
Cuando abra una traza mediante el SQL Server Profiler, no es necesario que el archivo de traza tenga la extensión de archivo .trc si se creó mediante el SQL Server Profiler o los procedimientos almacenados del sistema de Traza de SQL.
[!NOTA]
El SQL Server Profiler también puede leer archivos .log de Traza de SQL y archivos de scripts SQL genéricos. Si abre un archivo .log de Traza 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 trazas.
Solución de problemas de los datos
El SQL Server Profiler permite solucionar problemas de datos mediante la agrupación de trazas o archivos de traza 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 las trazas 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 que utiliza el evento en milisegundos (una milésima de segundo o 10-3 segundos). En SQL Server 2000, el servidor informaba de la duración y del tiempo de CPU en milisegundos. En SQL Server 2005 o 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 trazas
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 una traza
Para encontrar y agrupar eventos en una traza, siga estos pasos:
Cree la traza.
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 Cómo crear un seguimiento (SQL Server Profiler).
Agrupe los datos capturados por la columna de datos Event Classy capture la traza en un archivo o una tabla. Para agrupar los datos capturados, haga clic en la opción Organizar columnas de la ficha Selección de eventos del cuadro de diálogo Propiedades de traza. Para obtener más información, vea Cómo organizar las columnas mostradas en un seguimiento (SQL Server Profiler).
Inicie la traza y deténgala una vez pasado el tiempo apropiado o cuando se haya capturado el número de eventos.
Busque los eventos de destino.
Abra el archivo o la tabla de traza y expanda el nodo de la clase de evento que desee, por ejemplo, Deadlock Chain. Para obtener más información, vea Cómo abrir un archivo de seguimiento (SQL Server Profiler) o Cómo abrir una tabla de seguimiento (SQL Server Profiler).
Busque en los datos de la traza 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.
Muestre los eventos en el contexto.
Muestre las propiedades de la traza 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 la traza 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 otros que pertenecen a cada Id. de proceso de cliente seleccionado. Por ejemplo, los eventos Deadlock y Deadlock Chain, capturados en la traza, aparecerán inmediatamente después de los eventos SQL:BatchStarting del Id. 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