SQL Server. Активные задания

SQL Server. Активные задания

SQL Server Jobs

Доброго времени суток.

Сегодня я бы хотел рассмотреть вопрос заданий, которые сейчас выполняются на сервере. Есть множество способов получения нужной нам информации и мы сегодня рассмотрим некоторые из них:

1. Самый простой способ, но не самый полезный это просто использовать процедуру msdb.dbo.sp_help_job:

exec msdb.dbo.sp_help_job @execution_status = 1

Здесь мы получим множество информации о запущенных заданиях в данный момент. Минут данного метода заключается в том, что с этими данными сложно работать.

2. Используя ту же процедуру мы можем загнать данные в табличную форму, с которой можно будет работать, но и тут не обойдёмся без минусов, нам придётся использовать функцию OPENROWSET:

SELECT * INTO #ActiveJobs FROM OPENROWSET('SQLNCLI', 'Server=(local);Trusted_Connection=yes;','EXEC msdb.dbo.sp_help_job @execution_status = 1')
SELECT * FROM #ActiveJobs

Если вы испытываете сложности с данной функцией, то необходимо указать верные параметры. В моём случае я использую встроенную систему безопасности без указания пароля. Возможно потребуется изменить параметры примерно на следующие ‘Server=SERVER_NAME\INSTANCE_NAME;uid=user;pwd=111111′ вместо Server=(local);Trusted_Connection=yes;’

3. Есть ещё один способ, но он достаточно громоздкий:

IF OBJECT_ID('tempdb.dbo.#RunningJobs') IS NOT NULL
      DROP TABLE #RunningJobs
CREATE TABLE #RunningJobs (   
Job_ID UNIQUEIDENTIFIER,   
Last_Run_Date INT,   
Last_Run_Time INT,   
Next_Run_Date INT,   
Next_Run_Time INT,   
Next_Run_Schedule_ID INT,   
Requested_To_Run INT,   
Request_Source INT,   
Request_Source_ID VARCHAR(100),   
Running INT,   
Current_Step INT,   
Current_Retry_Attempt INT,   
State INT )     

INSERT INTO #RunningJobs EXEC master.dbo.xp_sqlagent_enum_jobs 1,garbage   

SELECT name AS [Job Name],*
FROM     #RunningJobs JSR  
JOIN     msdb.dbo.sysjobs  
ON       JSR.Job_ID=sysjobs.job_id  
WHERE    Running=1 
ORDER BY name,next_run_date,next_run_time

 

Мы рассмотрели несколько способов получения активных заданий. Каким именно пользоваться решать вам.

Запись опубликована в рубрике В помощь администратору с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: