Compartir a través de


Visualización y análisis de seguimientos con SQL Server Profiler

Se aplica a:SQL ServerAzure 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.

Al abrir un seguimiento mediante SQL Server Profiler, el archivo de seguimiento no necesita tener la extensión de archivo .trc si el archivo se creó mediante SQL Server Profiler o procedimientos almacenados del sistema de seguimiento de SQL.

SQL Server Profiler también puede leer archivos de traza de SQL .log y archivos de script SQL genéricos. Al abrir un archivo de seguimiento .log de SQL que no tiene una .log extensión de archivo, como trace.txt, especifique SQLTrace_Log como formato de 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 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);

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 objeto al ver trazas

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 . Debe agrupar en este orden porque los identificadores de objetos e índices no son únicos entre servidores y bases de datos ni entre objetos cuando se trata de identificadores de índice.

Buscar eventos específicos dentro de 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, ClientProcessIDy 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 Clase de Evento, y capture la traza en un archivo o tabla. Para agrupar los datos capturados, seleccione Organizar columnas en la pestaña Selección de eventos del cuadro de diálogo Propiedades de seguimiento. Para obtener más información, vea Organizar columnas mostradas en un rastreo (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 los datos de seguimiento hasta que encuentre los eventos para los que está buscando (use el comando Buscar en el menú Editar de SQL Server Profiler para ayudarle a encontrar valores en el seguimiento). Anote los valores de las columnas de datos ClientProcessID y Start Time correspondientes a los eventos de los que se realiza un seguimiento.

  3. Muestre los eventos en el contexto.

    • Muestre las propiedades de seguimiento y agrupe por la columna de datos ClientProcessID en lugar de por la columna de datos Clase de eventos.

    • Expanda los nodos de cada Id. de proceso de cliente que desee ver. Busque manualmente en el seguimiento o use Buscar hasta que encuentre los valores de Hora de Inicio previamente indicados 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, ApplicationNameu otra clase de eventos para ver la actividad relacionada en orden cronológico.