Ejecución de un seguimiento del lado del servidor en una instancia de base de datos de SQL Server - Amazon Relational Database Service

Ejecución de un seguimiento del lado del servidor en una instancia de base de datos de SQL Server

Escribir scripts para crear un seguimiento del lado del servidor puede ser complicado y está fuera del alcance de este documento. Esta sección contiene scripts de muestra que se pueden usar como ejemplos. Al igual que en el seguimiento del lado del cliente, el objetivo es crear un archivo de carga de trabajo o una tabla de seguimiento que se puede abrir con el Asistente para la optimización del motor de base de datos.

A continuación se muestra un script de ejemplo abreviado que inicia un seguimiento del lado del servidor y captura detalles en un archivo de carga de trabajo. El seguimiento se guarda inicialmente en el archivo RDSTrace.trc del directorio D:\RDSDBDATA\Log y cambia cada 100 MB, de modo que los archivos de seguimiento posteriores se llaman RDSTrace_1.trc, RDSTrace_2.trc, etc.

DECLARE @file_name NVARCHAR(245) = 'D:\RDSDBDATA\Log\RDSTrace'; DECLARE @max_file_size BIGINT = 100; DECLARE @on BIT = 1 DECLARE @rc INT DECLARE @traceid INT EXEC @rc = sp_trace_create @traceid OUTPUT, 2, @file_name, @max_file_size IF (@rc = 0) BEGIN EXEC sp_trace_setevent @traceid, 10, 1, @on EXEC sp_trace_setevent @traceid, 10, 2, @on EXEC sp_trace_setevent @traceid, 10, 3, @on . . . EXEC sp_trace_setfilter @traceid, 10, 0, 7, N'SQL Profiler' EXEC sp_trace_setstatus @traceid, 1 END

En el siguiente ejemplo se muestra un script que detiene un seguimiento. Un seguimiento creado por el script anterior sigue en ejecución hasta que el seguimiento se detiene expresamente o el proceso se queda sin espacio en el disco.

DECLARE @traceid INT SELECT @traceid = traceid FROM ::fn_trace_getinfo(default) WHERE property = 5 AND value = 1 AND traceid <> 1 IF @traceid IS NOT NULL BEGIN EXEC sp_trace_setstatus @traceid, 0 EXEC sp_trace_setstatus @traceid, 2 END

Puede guardar los resultados del seguimiento del lado del servidor en una tabla de base de datos y usar dicha tabla como carga de trabajo en el Asistente para la optimización por medio de la función fn_trace_gettable. Los siguientes comandos cargan los resultados de todos los archivos con el nombre RDSTrace.trc en el directorio D:\rdsdbdata\Log, incluidos todos los archivos de sustitución incremental, como RDSTrace_1.trc, en una tabla llamada RDSTrace en la base de datos actual.

SELECT * INTO RDSTrace FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace.trc', default);

Para guardar un archivo de sustitución incremental en una tabla, por ejemplo el archivo RDSTrace_1.trc, especifique el nombre del archivo de sustitución incremental y cambie por 1 el valor predeterminado del último parámetro de fn_trace_gettable.

SELECT * INTO RDSTrace_1 FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace_1.trc', 1);