ver studio registro recuperar querys query management job historial errores ejecutadas ejecuciones consultas consultar sql-server ssms history sql-job sql-agent

sql-server - registro - view history sql server management studio



¿Cómo puedo ver el historial de trabajos SQL completo? (4)

El sistema de trabajo de SQL Server limita el número total de entradas del historial de trabajos por trabajo y en todo el sistema. Esta información se almacena en la base de datos de MSDB.

Obviamente, no podrá volver atrás y ver la información que se descartó, pero puede cambiar las propiedades del Agente SQL Server y aumentar la cantidad de entradas que se registrarán a partir de ahora.

En las propiedades del Agente SQL Server:

  • Seleccione la página de historial
  • Modifique el ''Tamaño máximo del registro de historial de trabajos (filas)'' y ''Filas máximas del historial de trabajos por trabajo'' para adaptarlo o cambie la forma en que se eliminan los datos históricos del trabajo según su antigüedad.

No le devolverá su historial, pero lo ayudará con sus futuras consultas.

En SQL Server Management Studio, cuando "Ver historial" para un trabajo SQL, solo se muestran las últimas 50 ejecuciones del trabajo.

¿Cómo puedo ver un registro completo de cada ejecución de un trabajo SQL desde que se creó en el servidor?


Estoy bastante seguro de que el historial de trabajo se almacena en algún lugar de una base de datos dedicada en SQL Server. Si este es el caso, puede usar el Analizador de SQL Server para interceptar las sentencias de SQL enviadas por SQL Server Management Studio y averiguar los nombres de las tablas, etc.


Podría usar la tabla temporal para cambiar la retención de datos. Historial de trabajos persistente en la instancia administrada de Azure SQL :

ALTER TABLE [msdb].[dbo].[sysjobhistory] ADD StartTime DATETIME2 NOT NULL DEFAULT (''19000101 00:00:00.0000000'') ALTER TABLE [msdb].[dbo].[sysjobhistory] ADD EndTime DATETIME2 NOT NULL DEFAULT (''99991231 23:59:59.9999999'') ALTER TABLE [msdb].[dbo].[sysjobhistory] ADD PERIOD FOR SYSTEM_TIME (StartTime, EndTime) ALTER TABLE [msdb].[dbo].[sysjobhistory] ADD CONSTRAINT PK_sysjobhistory PRIMARY KEY (instance_id, job_id, step_id) ALTER TABLE [msdb].[dbo].[sysjobhistory] SET(SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[sysjobhistoryall], DATA_CONSISTENCY_CHECK = ON, HISTORY_RETENTION_PERIOD = 1 MONTH)) select * from msdb.dbo.sysjobhistoryall

Este enfoque permite definir el período de retención como tiempo (aquí 1 MONTH ) en lugar de la cantidad máxima de filas por trabajo / tamaño máximo del registro de historial de trabajos (filas).


Su resultado depende de un par de cosas.

  1. Lo que ha establecido en su configuración de "Limitar el tamaño del historial de trabajos" y "Eliminar automáticamente el historial del agente" [haga clic con el botón derecho en Agente SQL | Propiedades | Historia] y
  2. esté o no haciendo una tarea de "Limpieza de historial" en un Plan de mantenimiento (o manualmente para esa manera). La tarea MP ejecuta el procedimiento almacenado msdb.dbo.sp_purge_jobhistory con un parámetro de "fecha más antigua" que equivale al período seleccionado.