Как я могу просмотреть полную историю заданий SQL? - PullRequest
26 голосов
/ 13 октября 2011

В SQL Server Management Studio, когда я "Просмотреть историю" для задания SQL, мне показываются только последние 50 выполнений задания.

Как просмотреть полный журнал каждого выполненияЗадание SQL с момента его создания на сервере?

Ответы [ 4 ]

38 голосов
/ 13 октября 2011

Система заданий SQL Server ограничивает общее количество записей истории заданий как по заданию, так и по всей системе. Эта информация хранится в базе данных MSDB.

Очевидно, что вы не сможете вернуться и просмотреть информацию, которая была сброшена после этого, но вы можете изменить свойства Агент SQL Server и увеличить количество записей, которые будут записываться с этого момента. .

В свойствах агента SQL Server:

  • Выберите История Страница
  • Измените «Максимальный размер журнала истории заданий (строк)» и «Максимальное количество строк истории заданий на задание» в соответствии с требованиями или измените способ удаления исторических данных задания в зависимости от их возраста.

Это не вернет вам историю, но поможет с вашими будущими запросами!

4 голосов
/ 13 октября 2011

Я почти уверен, что история заданий хранится где-то в выделенной базе данных в самом SQL Server.В этом случае вы можете использовать SQL Server Profiler для перехвата операторов SQL, отправленных SQL Server Management Studio, и для определения имен таблиц и т. Д.

3 голосов
/ 08 сентября 2012

Ваш результат зависит от нескольких вещей.

  1. Что вы установили в настройках «Ограничить размер журнала заданий» и «Автоматически удалять историю агента» [щелкните правой кнопкой мыши на SQL Agent | Свойства | История] и
  2. независимо от того, выполняете ли вы задачу «Очистка истории» в плане обслуживания (или для этого вручную). Задача MP запускает хранимую процедуру msdb.dbo.sp_purge_jobhistory с параметром «самая старая дата», который соответствует выбранному вами периоду.
0 голосов
/ 20 сентября 2018

Вы можете использовать временную таблицу, чтобы изменить срок хранения данных. Сохранение истории заданий в управляемом экземпляре 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

Этот подход позволяет определить период хранения как время (здесь 1 MONTH) вместо максимального количества строк на задание / xaximum размера журнала истории заданий (строк).

...