Obtenga resultados detallados del trabajo del Agente SQL


15

Tenemos un trabajo del Agente SQL Server que ejecuta un plan de mantenimiento para reindexar toda la base de datos en el servidor. Recientemente esto ha fallado, pero el historial de trabajo no proporciona suficiente información para diagnosticar el problema.

En el historial de trabajos indica que el trabajo falló. El trabajo fue invocado por el usuario foo \ bar. El último paso para ejecutar fue el paso 1 (Reconstruir índice).

En la ventana de detalles hay varios mensajes en la siguiente forma:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

La declaración SQL que se está ejecutando está truncada, y supongo que la salida de la declaración también está truncada, lo que me impide identificar qué declaración en particular ha fallado y por qué. ¿Hay alguna forma de extraer el texto completo de estos mensajes?


1
Creo que @kin hace un buen trabajo respondiendo su pregunta inicial, pero en mi opinión esto es más un problema de depuración. Si conoce el índice en el que falla, entonces trataría de identificar por qué falla ese índice específico. ¿Puedes ver el código sql utilizado? ¿Está en un proceso almacenado? Podrías hacer varias cosas para reducirlo. Cree un trabajo con solo ese índice. Ejecute sql trace mientras se ejecuta ese trabajo. Capture el sql utilizado y luego intente reproducir el problema.
Sir Swears-a-lot

Respuestas:


18

¿Hay alguna forma de extraer el texto completo de estos mensajes?

Puede lograrlo de 2 maneras: vaya al paso de trabajo y seleccione la pestaña Avanzado:

a. Salida a un archivo (<== Mi método preferido)

ingrese la descripción de la imagen aquí

si. "Iniciar sesión en la tabla" e "Incluir salida de paso en el historial" (<== Necesita recortar msdb..sysjobhistorya largo plazo ya que los mensajes se almacenan como en nvarchar(max)lugar de nvarchar(1024))

ingrese la descripción de la imagen aquí

Para ver la información adicional registrada necesita usar este procedimiento almacenado sp_help_jobsteplog o puede consultar la msdb.dbo.sysjobstepslogstabla directamente.

Más información aquí.


Saludos, lo intentaré. solo para hacerle saber, el nombre correcto de esa tabla es msdb.dbo.sysjobstepslogs ('logs' en lugar de 'log'). Intenté editar la respuesta pero no se permiten las ediciones de un solo carácter.
toryan

1
@toryan np. He editado mi respuesta. Si cree que he respondido su pregunta, por favor vote / marque como respuesta.
Kin Shah

1
Volví a ejecutar el trabajo y esta vez solo generó un error, que se registró en la tabla como se describe. Lamentablemente, el texto de la consulta todavía se truncó. ¿Hay alguna forma de obtener más información?
toryan

Lo dudo. ¿Puedes probar con el método de archivo de salida 1 como se describe en mi respuesta?
Kin Shah

1
@toryan Tuve el mismo problema: el registro seguía truncado, incluso con la salida a una tabla (método (b) anterior) y la lectura sysjobstepslogs. Esta fue la recomendación de la mayoría de las discusiones en línea sobre este problema. Pero el método (a), salida a un archivo, NO tenía este problema: ¡los archivos de texto me muestran todo el registro de pasos de trabajo, finalmente sin truncamiento! (En mi caso, los pasos de mi trabajo son DTEXECcomandos que ejecutan paquetes SSIS). Solo inconveniente: solo se ve la última ejecución, a menos que se agregue al archivo. En lugar de agregar, elijo vivir con truncamiento en ejecuciones anteriores.
Doug_Ivison

2

Puedes obtener el texto completo:

  1. Ir al trabajo
  2. Botón derecho del ratón select properties
  3. Ir al paso de trabajo
  4. Seleccione stepy haga clic en el editbotón
  5. Seleccionar advanced. Aquí puede ver la ruta de registro.

Ahora es simple seguir el camino.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.