INF: Cómo automatizar la traza de SQL a través de tareas programadas

Seleccione idioma Seleccione idioma
Id. de artículo: 194860 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

Puede utilizar la utilidad de seguimiento SQL en SQL Server 6.5 para supervisar todos los eventos entrantes enviados a SQL Server. En este artículo se describe cómo utilizar el procedimiento almacenado con tareas programadas extendido de xp_sqltrace para automatizar el seguimiento de los eventos entrantes a SQL Server. Xp_sqltrace es el procedimiento que llama la utilidad de seguimiento SQL. Dado que todos los eventos entrantes de seguimiento puede causar un archivo de traza de gran, el procedimiento podrá cambiar automáticamente el archivo de salida de la traza y eliminar los antiguos archivos de seguimiento.

Más información

Los pasos siguientes recorra configurar xp_sqltrace para capturar todos los eventos entrantes de SQL Server. Si desea modificar este procedimiento para aplicar el filtrado de la traza o si desea obtener información detallada sobre el procedimiento de xp_sqltrace, vea el tema "xp_sqltrace (versión 6.5)" en los libros en pantalla de SQL Server.

De forma predeterminada con el seguimiento SQL, se capturan sólo eventos completados. Sin embargo, hay una opción para poder capturar eventos en una base prefilter. Esto permite capturar eventos a medida que se envían al servidor, en lugar se finalice. Para obtener más información, consulte a continuación.

Para automatizar el seguimiento, siga estos pasos:
  1. Utilice la siguiente secuencia de comandos para crear el procedimiento sp_audit_trace:
          use master
          go
          create procedure sp_audit_trace
          @directory varchar(30) = 'C:',
          @eventfilter varchar(3) = '31'
          as
          declare @month char(2), @day char(2), @hour char(2),
          @minute char(2), @str varchar(255)
    
          select @month =
             CASE    WHEN (DATEPART(month, getdate())) < 10
                THEN '0' + convert
                (char(2), DATEPART(month, getdate()))
                ELSE convert (char(2), DATEPART(month, getdate()))
             END
          select @day =
             CASE    WHEN (DATEPART(day, getdate())) < 10
                THEN '0' + convert
                (char(2), DATEPART(day, getdate()))
                ELSE convert (char(2), DATEPART(day, getdate()))
             END
          select @hour =
             CASE    WHEN (DATEPART(hour, getdate())) < 10
                THEN '0' + convert
                (char(2), DATEPART(hour, getdate()))
                ELSE convert (char(2), DATEPART(hour, getdate()))
             END
          select @minute =
             CASE    WHEN (DATEPART(minute, getdate())) < 10
                THEN '0' + convert
                (char(2), DATEPART(minute, getdate()))
                ELSE convert (char(2), DATEPART(minute, getdate()))
             END
    
          select @str = "exec master..xp_sqltrace audit, @eventfilter="
          + @eventfilter + ", @fulltext=1, @fullfilepath='" + RTRIM(@directory)
          + "\sqltrace" + @month + @day + "_" + @hour + @minute + ".txt'"
    
          exec (@str)
    
    						
  2. Crear una tarea programada para ejecutar sp_audit_trace. Para ello, siga estos pasos:

    1. En el Administrador corporativo de SQL, haga doble clic en SQL Executive y, a continuación, haga clic en nueva tarea (el botón izquierdo superior) en las tareas programadas administrar barra de herramientas para crear una nueva tarea.
    2. La nueva tarea de proporcionar las siguientes propiedades:
               Name:     Audit Trace
               Type:     TSQL
               Database: Master
               Command:  Exec sp_audit_trace @directory = '<directory>'
               Schedule: Recurring  -  set the schedule as desired.
         
      								
      <directory>Donde <directorio> es el directorio desea el archivo de traza para ir a. Por ejemplo, si desea que el archivo para ir a D:\mydir, escribiría lo siguiente:
      exec sp_audit_trace @ directorio = 'D:\mydir'
      Si no especifica un directorio, se forma predeterminada en la raíz de unidad C.
Puede programar la tarea para cualquier tiempo desea que la traza para detener e iniciar de nuevo con un nuevo nombre de archivo de ejecución. Llamará el archivo de traza SqltraceMMDD_hhmm.txt, donde:
   MM = month when the trace was started
   DD = day when the trace was started
   hh = hour when the trace was started
   mm = minute when the trace was started
				

Cada vez que se ejecuta el procedimiento, actualiza el archivo de salida. Por ejemplo, si ejecuta a las 10: 34 A.M. del 13 de octubre y ejecútelo otra vez a 5: 07 en 14 de octubre, creará dos archivos siguientes:
   Sqltrace1013_1034.txt
   Sqltrace1014_1707.txt
				

El archivo Sqltrace1013_1034.txt contendrá todos los comandos enviados a SQL Server desde el 13 de octubre a las 10: 34 A hasta que el archivo se ha cambiado a las 5: 07 P.M. en 14 de octubre. El archivo Sqltrace1014_1707.txt contendrá todos los comandos enviados a SQL Server después de ese tiempo.

Ajustando la frecuencia que se ejecuta la tarea, puede controlar el tamaño del archivo de registro y administrar el espacio que se tarda en su unidad de disco duro. Después de que se ha ejecutado la tarea para crear un nuevo archivo de traza, puede eliminar sin riesgo los archivos de seguimiento más antiguos, si ha determinado que no contienen información que necesita.

De forma predeterminada, SQL Trace captura eventos completados. Esto le permite recopilar información de rendimiento para las consultas enviadas a SQL Server. Sin embargo, en algunos casos puede ser deseable para capturar los eventos antes de que se hayan completado. Para configurar la auditoría para capturar eventos tal como se envían a SQL Server, antes de que se completen, modificar el comando leer la tarea anterior:
   Exec sp_audit_trace @eventfilter = '115',
                       @directory = '<directory>'
				

<directory>Donde <directorio> es el directorio donde desea que el archivo de traza para ir a, como el anterior.

Para detener el seguimiento, crear una segunda tarea programada de petición (repitiendo el paso 2 del procedimiento anterior) con la información siguiente:
   Name:     Audit Trace Stop
   Type:     TSQL
   Database: Master
   Command:  Exec xp_sqltrace audit, @eventfilter = 0
   Schedule: On Demand
				

Al ejecutar esta tarea, seguimiento de todos se detendrá en el servidor. Si ya no desea seguimiento en absoluto, tiene que deshabilitar la tarea original que creó en el paso 2, para asegurarse de que no se ejecute en el futuro y reiniciar el seguimiento. Para deshabilitar la tarea, haga doble clic en la ventana Administrar tareas de programación y desactive la casilla de verificación habilitado.

Propiedades

Id. de artículo: 194860 - Última revisión: domingo, 9 de febrero de 2014 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 6.5 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbhowto kbinfo KB194860 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 194860

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com