Ver y analizar seguimientos con SQL Server Profiler
Se aplica a: SQL Server Azure SQL Managed Instance
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 del SQL Server consiste en copiarlos a otro programa, como SQL Server o el Asistente para la optimización del Motor de base de datos . Motor de base de datos 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 . 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 Ajuste que se proporciona con SQL Server Profiler.
Cuando abra un seguimiento mediante SQL Server Profiler, no es necesario que el archivo de seguimiento tenga la extensión de archivo .trc si se ha creado mediante SQL Server Profiler o los procedimientos almacenados del sistema de Seguimiento de SQL.
Nota
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 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 . 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 usa 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
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). La interfaz gráfica de usuario de SQL 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. Estas medidas son para consultas de Transact-SQL (T-SQL).
Mostrar nombres de objetos al ver seguimientos
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 .
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 IDy 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:
Cree el seguimiento.
Una vez definida, capture las columnas de datos Event Class, ClientProcessIDy Start Time además de cualquier otra columna de datos que desee capturar. Para obtener más información, consulte Creación de 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, consulte Organización de las columnas que se muestran 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.
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 el Asistente para la optimización del 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 ClientProcessID y Start Time correspondientes a los eventos de los que se realiza un seguimiento.
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:BatchStartingevents within the expyed client process ID.
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, ApplicationNameu otra clase de eventos para ver la actividad relacionada en orden cronológico.