Где хранятся job MS SQL: расположение и структура данных
Где хранятся job MS SQL
В MS SQL Server job'ы хранятся в специальной системной таблице с именем msdb.dbo.sysjobs.
Вы можете использовать следующий SQL-запрос, чтобы получить список всех job'ов:
SELECT * FROM msdb.dbo.sysjobs;
Также вы можете получить информацию о расписании и действиях, связанных с job'ами, используя таблицы msdb.dbo.sysjobschedules и msdb.dbo.sysjobsteps соответственно.
Например, чтобы получить информацию о расписании для определенного job'а, вы можете выполнить следующий SQL-запрос:
SELECT * FROM msdb.dbo.sysjobschedules WHERE job_id = 'job_id_here';
Надеюсь, это помогает вам!
Детальный ответ
Где хранятся job MS SQL
Job (задание) в Microsoft SQL Server представляет собой запланированную задачу или операцию, которая выполняется автоматически или периодически на сервере баз данных. Обычно job включает в себя выполнение определенного T-SQL кода или вызова определенной SQL Server Integration Services (SSIS) пакета.
Job-ы хранятся в системной базе данных MSDB. MSDB база данных содержит специальные таблицы и хранимые процедуры, которые поддерживают различные функции и компоненты SQL Server, включая job-ы.
Все информация о job-ах, такая как расписание, история выполнения, целостность и состояние, хранится в таблицах MSDB базы данных. Некоторые из наиболее важных таблиц, связанных с job-ами:
- sysjobs: Эта таблица содержит основную информацию о каждом job-е, такую как идентификатор, имя, дата создания и т.д.
- sysjobschedules: В этой таблице хранится информация о расписании выполнения job-ов. Это включает в себя детали о времени начала, интервале повторения, днях недели и т.д.
- sysjobhistory: Здесь хранится информация об истории выполнения job-ов. Это включает в себя информацию о успешных и неудачных выполнениях, коды ошибок, даты и время выполнения и т.д.
При создании job-а в SQL Server Management Studio (SSMS) или с помощью T-SQL кода, эта информация сохраняется в таблицах MSDB базы данных. Когда job запускается планировщиком задач, он обращается к этим таблицам для получения всей необходимой информации, чтобы выполнить задание.
Примеры кода job MS SQL
Вот пример создания простого job-а с помощью T-SQL кода:
USE MSDB;
GO
EXEC sp_add_job
@job_name = 'MyTestJob',
@enabled = 1;
GO
EXEC sp_add_jobstep
@job_name = 'MyTestJob',
@step_name = 'Step 1',
@subsystem = 'TSQL',
@command = 'SELECT GETDATE();';
GO
EXEC sp_add_schedule
@schedule_name = 'DailySchedule',
@freq_type = 4,
@active_start_time = 100000;
GO
EXEC sp_attach_schedule
@job_name = 'MyTestJob',
@schedule_name = 'DailySchedule';
GO
EXEC sp_add_jobserver
@job_name = 'MyTestJob',
@server_name = 'SQLServerInstanceName';
GO
В этом примере мы создаем job с именем 'MyTestJob' и включаем его с помощью параметра @enabled = 1. Затем мы добавляем jobstep (шаг job-а), который выполняет простой SQL запрос для выборки текущей даты и времени с помощью команды SELECT GETDATE().
Мы также добавляем расписание выполнения job-а с именем 'DailySchedule', которое запускается каждый день в 10:00 утра (с помощью параметра @active_start_time = 100000). Наконец, мы присоединяем расписание к job-у и указываем, на каком сервере баз данных SQL Server должен выполняться job (с помощью параметра @server_name = 'SQLServerInstanceName').
После того, как job был создан и настроен, он будет храниться в таблицах MSDB базы данных и готов к запуску по расписанию или вручную.
Вывод
Job-ы в Microsoft SQL Server хранятся в системной базе данных MSDB. Вся информация о job-ах, такая как расписание, история выполнения и состояние, хранится в специальных таблицах MSDB. При создании job-а с помощью SQL Server Management Studio (SSMS) или T-SQL кода, эта информация сохраняется в таблицах MSDB базы данных. Шаги job-ов могут включать выполнение T-SQL кода или вызов SSIS пакетов. Пример кода представлен выше для создания простого job-а.