Что такое job в sql

View Job Step Information

В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.

В данном разделе описано, как просмотреть сведения о шаге задания в окне «Свойства шага задания». Также предоставляются сведения о просмотре выходных данных шага задания.

Перед началом работы

Для просмотра сведений о шаге задания используется:

Перед началом

Ограничения

безопасность

Permissions

Использование среды SQL Server Management Studio

Просмотр сведений о шаге задания

В обозревателе объектов подключитесь к экземпляру Microsoft Компонент SQL Server Database Engine и разверните его.

Разверните узел Агент SQL Server, затем пункт Задания, щелкните правой кнопкой мыши задание, содержащее шаг, который следует просмотреть, и выберите пункт Свойства.

Щелкните шаг задания, который нужно просмотреть, и выберите Изменить.

На странице Общие окна Свойства шага задания можно видеть тип шага задания и его действие.

Просмотр выходных данных шага задания

Кнопка Просмотр недоступна, если выходные данные шагов задания записываются в файл. Чтобы просмотреть файл вывода шага задания, используйте блокнот.

Источник

sp_help_jobhistory (Transact-SQL)

Предоставляет сведения о заданиях серверов в многосерверном административном домене.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sqlСинтаксические обозначения в Transact-SQL

Синтаксис

Аргументы

[ @job_id = ] job_id Идентификационный номер задания. job_id имеет тип uniqueidentifier и значение по умолчанию NULL.

[ @job_name = ] ‘job_name’ Имя задания. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.

[ @step_id = ] step_id Идентификационный номер шага. step_id имеет тип int и значение по умолчанию NULL.

[ @sql_message_id = ] sql_message_id Идентификационный номер сообщения об ошибке, возвращенного Microsoft SQL Server при выполнении задания. sql_message_id имеет тип int и значение по умолчанию NULL.

[ @sql_severity = ] sql_severity Степень серьезности сообщения об ошибке, возвращаемого SQL Server при выполнении задания. sql_severity имеет тип int и значение по умолчанию NULL.

[ @start_run_date = ] start_run_date Дата запуска задания. start_run_date имеет тип int и значение по умолчанию NULL. start_run_date должны быть указаны в формате ГГГГММДД, где YYYY — год из четырех символов, mm — имя месяца из двух символов, а дд — двузначное имя дня.

[ @end_run_date = ] end_run_date Дата завершения задания. end_run_date имеет тип int и значение по умолчанию NULL. end_run_date необходимо указать в формате ГГГГММДД, где гггг — это четырехзначный год, а mm — имя месяца из двух символов, а дд — двузначное имя дня.

[ @start_run_time = ] start_run_time Время запуска задания. start_run_time имеет тип int и значение по умолчанию NULL. start_run_time должны быть указаны в формате ЧЧММСС, где ЧЧ — 2-символьный час дня, mm — это две минуты дня, а SS — двузначное значение дня.

[ @end_run_time = ] end_run_time Время завершения выполнения задания. end_run_time имеет тип int и значение по умолчанию NULL. end_run_time должны быть указаны в формате ЧЧММСС, где ЧЧ — 2-символьный час дня, mm — это две минуты дня, а SS — двузначное значение дня.

[ @minimum_run_duration = ] minimum_run_duration Минимальный период времени для завершения задания. minimum_run_duration имеет тип int и значение по умолчанию NULL. minimum_run_duration должны быть указаны в формате ЧЧММСС, где ЧЧ — 2-символьный час дня, mm — это две минуты дня, а SS — двузначное значение дня.

[ @run_status = ] run_status Состояние выполнения задания. run_status имеет тип int, значение по умолчанию NULL и может принимать одно из следующих значений.

ЗначениеОписание
0Сбой
1Выполнено
2Повторить (только для этапа)
3Отменено
4Сообщение о проценте выполнения
5Неизвестно

[ @minimum_retries = ] minimum_retries Минимальное число повторных попыток выполнения задания. minimum_retries имеет тип int и значение по умолчанию NULL.

[ @oldest_first = ] oldest_first Указывает, следует ли выводить выходные данные сначала с самыми старыми заданиями. oldest_first имеет тип int и значение по умолчанию 0, которое сначала представляет последние задания. 1 в первую очередь представляет самые старые задания.

[ @server = ] ‘server’ Имя сервера, на котором было выполнено задание. Server имеет тип nvarchar (30) и значение по умолчанию NULL.

[ @mode = ] ‘mode’ Определяет, будет ли SQL Server печатать все столбцы в результирующем наборе (полная) или сводку по столбцам. mode имеет тип varchar (7) и значение по умолчанию Summary.

Значения кода возврата

0 (успешное завершение) или 1 (сбой)

Результирующие наборы

Реальный список столбцов зависит от значения mode. Наиболее полный набор столбцов показан ниже и возвращается, если режим заполнен.

Имя столбцаТип данныхОписание
instance_idintИдентификационный номер записи журнала.
job_iduniqueidentifierИдентификатор задания.
job_namesysnameИмя задания.
step_idintИдентификационный номер шага (для журнала заданий будет равен 0 ).
step_namesysnameИмя этапа (NULL для журнала заданий).
sql_message_idintДля шага Transact-SQL — самый последний номер ошибки Transact-SQL, обнаруженный при выполнении команды.
sql_severityintДля шага Transact-SQL — самая высокая степень серьезности ошибки Transact-SQL, обнаруженная при выполнении команды.
messagenvarchar(1024)Запись в журнале о задании или этапе.
run_statusintРезультат задания или этапа.
run_dateintДата начала выполнения задания или этапа.
run_timeintДата начала выполнения задания или этапа.
run_durationintВремя, прошедшее с момента запуска задания или этапа в формате «ЧЧММСС».
operator_emailednvarchar (20)Оператор, которому было отправлено электронное письмо относительно этого задания (NULL для журнала этапов).
operator_netsentnvarchar (20)Оператор, которому было отправлено сетевое сообщение относительно этого задания (NULL для журнала этапов).
operator_pagednvarchar (20)Оператор, которому было отправлено сообщение на пейджер относительно этого задания (NULL для журнала этапов).
retries_attemptedintКоличество повторных попыток запуска этапа (всегда 0 для журнала заданий).
servernvarchar(30)Сервер, на котором выполняется задание или этап. Всегда имеет (Local).

Замечания

sp_help_jobhistory возвращает отчет с историей указанных запланированных заданий. Если не указаны параметры, отчет содержит журнал всех заданий в расписании.

Разрешения

SQLAgentUserRole

SQLAgentReaderRole

SQLAgentOperatorRole

Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Члены роли базы данных SQLAgentUserRole могут только просматривать журнал для заданий, которыми они владеют.

Примеры

A. Вывод всех сведений о задании

Б. Вывод сведений о заданиях, которые соответствуют определенным условиям

Источник

sp_add_job (Transact-SQL)

добавляет новое задание, выполняемое службой агента SQL.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sqlСинтаксические обозначения в Transact-SQL

В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.

Синтаксис

Аргументы

[ @job_name = ] ‘job_name’ Имя задания. Имя должно быть уникальным и не может содержать символ процента ( % ). job_name имеет тип nvarchar (128) и не имеет значения по умолчанию.

[ @enabled = ] enabled Указывает состояние добавленного задания. Enabled имеет тип tinyint и значение по умолчанию 1 (включено). Если значение равно 0, задание не включено и не выполняется в соответствии с расписанием. Однако его можно запустить вручную.

[ @description = ] ‘description’ Описание задания. Description имеет тип nvarchar (512) и значение по умолчанию NULL. Если Описание отсутствует, используется параметр «нет описания».

[ @start_step_id = ] step_id Идентификационный номер первого шага, выполняемого для задания. step_id имеет тип int и значение по умолчанию 1.

[ @category_name = ] ‘category’ Категория для задания. Category имеет тип sysname и значение по умолчанию NULL.

[ @category_id = ] category_id Независимый от языка механизм для указания категории заданий. category_id имеет тип int и значение по умолчанию NULL.

[ @notify_level_eventlog = ] eventlog_level значение, указывающее, когда следует поместить запись в журнал приложений Microsoft Windows для этого задания. eventlog_level имеет тип int и может принимать одно из следующих значений.

ЗначениеОписание
0Никогда
1При успешном завершении
2 (по умолчанию)При сбое
3Always (Всегда)

[ @notify_level_email = ] email_level Значение, указывающее, когда следует отправить сообщение электронной почты после завершения этого задания. email_level имеет тип int и значение по умолчанию 0, что означает Never. email_level использует те же значения, что и eventlog_level.

[ @notify_level_netsend = ] netsend_level Значение, указывающее, когда следует отправить сетевое сообщение после завершения этого задания. netsend_level имеет тип int и значение по умолчанию 0, что означает Never. netsend_level использует те же значения, что и eventlog_level.

[ @notify_level_page = ] page_level Значение, указывающее, когда следует отправить страницу после завершения этого задания. page_level имеет тип int и значение по умолчанию 0, что означает Never. page_level использует те же значения, что и eventlog_level.

[ @notify_netsend_operator_name = ] ‘netsend_name’ Имя оператора, которому отправляется сетевое сообщение после завершения этого задания. Аргумент netsend_name имеет тип sysname и значение по умолчанию NULL.

[ @notify_page_operator_name = ] ‘page_name’ Имя пользователя, которому будет присвоена страница после завершения этого задания. Аргумент page_name имеет тип sysname и значение по умолчанию NULL.

[ @delete_level = ] delete_level Значение, указывающее, когда следует удалять задание. delete_value имеет тип int и значение по умолчанию 0, что означает никогда. delete_level использует те же значения, что и eventlog_level.

Если delete_level имеет значение 3, задание выполняется только один раз, независимо от всех расписаний, определенных для задания. Если в какой-то момент задание удаляет себя, журнал этого задания также удаляется.

[ @job_id = ] _job_idOUTPUT Идентификационный номер задания, назначенный заданию при успешном создании. job_id является выходной переменной типа uniqueidentifier и ЗНАЧЕНИЕМ по умолчанию NULL.

Значения кода возврата

0 (успешное завершение) или 1 (сбой)

Результирующие наборы

Remarks

@ originating_server существует в sp_add_job, но не указана в списке arguments. @ originating_server зарезервировано для внутреннего использования.

SQL Server Management Studio обеспечивает доступный графический способ управления заданиями и рекомендуется для создания и управления инфраструктурой заданий.

Разрешения

Для выполнения этой хранимой процедуры пользователи должны быть членами предопределенной роли сервера sysadmin или иметь одну из следующих SQL Server предопределенных ролей базы данных агента, которая находится в базе данных msdb :

SQLAgentUserRole

SQLAgentReaderRole

SQLAgentOperatorRole

сведения о конкретных разрешениях, связанных с каждой из этих предопределенных ролей базы данных, см. в разделе фиксированные роли базы данных агента SQL Server.

Примеры

A. Создание задания

Б. Создание задания с уведомлением по пейджеру, электронной почте и по сети

В данном примере предполагается, что оператор с именем François Ajenstat и имя входа françoisa уже существуют.

Источник

Задания SQL¶

SQL Editor¶

Редактор SQL поддерживает SQL 2003 и соответствует стандарту Spark SQL. В левой части страницы SQL Editor можно выполнить следующие операции:

Databases — на данной вкладке отображаются все созданные базы данных.

Queues — на данной вкладке отображаются все созданные очереди.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql— нажмите на значок, чтобы создать базу данных, таблицу или очередь.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql— нажмите на значок, чтобы обновить список баз данных, таблиц или очередей.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql— фильтрация по имени базы данных или таблицы.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Queues — из раскрывающегося списка выберите нужную очередь.

Databases — из раскрывающегося списка выберите нужную базу данных.

Execute — нажмите кнопку для запуска SQL-задания.

Format — форматирование SQL-выражений.

Syntax Reference — нажмите, чтобы открыть справочник по синтаксису SQL.

Settings — можно задать свойства для представленных заданий SQL в формате ключ/значение (keu/value). Подробности смотрите в справочнике API Submitting a SQL Job (Recommended). Можно установить до 10 атрибутов.

More — включает в себя следующие опции:

Verify Syntax — проверка правильности SQL-выражений.

Save as Template — сохранение SQL-выражений в качестве образца.

Choose Template — выбор сохраненного ранее образца.

Change Theme — смена темы редактора со светлой на темную и наоборот.

Клавиши быстрого доступа:

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Под окном редактора SQL можно увидеть запросы за последнюю неделю (вкладка Executed Queries (Last 7 Days) ) и посмотреть результат выполнения операции ( View Result ):

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Создание задания SQL¶

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Также к редактору SQL можно перейти из раздела Job Management :

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Просмотр заданий SQL¶

На данной странице можно посмотреть подробности операций с базами данных и таблицами SQL. Для удобства поиска нужных заданий можно воспользоваться функциями фильтрации таблицы:

Name — фильтрация по имени очереди.

Date — фильтрация по дате выполнения задания.

Statement / Job ID — фильтрация по SQL-выражению или ID-номеру задания.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql— обновление списка заданий.

Created — сортировка по убыванию (Descending) или возрастанию (Ascending) даты создания.

Job Type — сортировка по типу задания.

Status — сортировка по статусу задания.

Duration — сортировка по убыванию (Descending) или возрастанию (Ascending) длительности выполнения задания.

Что такое job в sql. Смотреть фото Что такое job в sql. Смотреть картинку Что такое job в sql. Картинка про Что такое job в sql. Фото Что такое job в sql

Управление заданиями SQL¶

На данной странице можно выполнить следующие операции:

SparkUI — после нажатия этой кнопки отобразится страница выполнения задания Spark.

Данная функция доступна только для пользовательских очередей (не для default) и для заданий асинхронных запросов.

Export Log — экспорт журнала логов.

Данная функция доступна только для пользовательских очередей (не для default) и для заданий асинхронных запросов.

Источник

Что такое job в sql

Задания в Oracle9i

В Oracle существует возможность запланировать выполнение определенного набора действий в виде заданий. Задание может, представляет собой хранимую процедуру, анонимный блок PL /SQL, внешнюю процедуру на языке C или Java. Время выполнения может иметь значение любого времени суток и подчинятся заданному интервалу. Это хорошо подходит для переноса тяжёлых в обработке расчётов на менее загруженное ночное время. По умолчанию выполнение заданий выключено. Поэтому надо провести небольшую дополнительную настройку сервера.

Настройка сервера

Для того чтобы задания начались выполняться необходимо, установить параметр инициализации JOB_QUEUE_PROCESSES. Изначально он имеет значение 0 и задаёт максимальное количество фоновых процессов для выполнения заданий. В версии Oracle 9.2 максимальное значение этого параметра может составлять 1000. На практике же обычно можно ограничиться не более 5 процессами. В любом случае вы всегда можете изменить это значение с помощью команды ALTER SYSTEM SET без перезагрузки сервера. Итак, для начала внесем новую строчку в файл инициализации и перезагрузим сервер:

В файле alert.log мы увидим, что в момент, когда стартуют фоновые процессы, у нас появилось новая запись:

Это стартовал новый фоновый процесс CJQ0, так называемый координатор заданий. Что он делает и для чего он нужен, мы рассмотрим чуть ниже, а на этом предварительную настройку сервера можно считать законченной.

Процессы

Итак, процесс координатора заданий запущен, и как можно догадаться из его названия именно этот процесс осуществляет общее управление всеми заданиями. Для начала он выбирает таблицу SYS.JOB$, в которой хранятся параметры заданий. Если среди заданий имеются те, которые будут выполняться в ближайший интервал времени указанный в скрытом параметре _JOB_QUEUE_INTERVAL (по умолчанию его значение составляет 5 секунд), то для них порождаются фоновые процессы очереди заданий Jnnn, которые в свою очередь создают сеансы для непосредственного выполнения запланированных действий. Именно максимальное количество процессов Jnnn, которые могут быть одновременно запущены и отражает настраиваемый параметр JOB_QUEUE_PROCESSES.

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

Выставляйте значение параметра JOB_QUEUE_PROCESSES чуть больше максимального количества одновременно запускаемых заданий. Маленькое значение может привести к сдвигу времени выполнения из-за конкуренции за процессы Jnnn. Большое значение к неоправданному запуску этих же процессов в исключительных ситуациях.

Создание заданий

Для управления заданиями в Oracle существует специальный пакет DBMS_JOB. С его помощью над ними можно осуществлять различные действия. Для начала попробуем создать новое задание. В нашем случае для этого, нужно применить следующую процедуру пакета:

Опишем параметры этой процедуры:

Если вы введёте дату меньше чем текущую, то выполнение задания может начаться немедленно или отложится на неопределённое время. В этом случае попробуйте принудительно запустить задание или повторно изменить этот параметр, это инициирует немедленный запуск задания.

Задание будет выполняться ровно в n часов m минут каждого дня.

Задание будет выполняться ровно в n часов m минут последнего дня каждого месяца.

Задание будет выполняться ровно в n часов m минут первого дня каждого месяца.

Учитывайте, что вычисление NEXT_DATE с помощью формулы интервала происходит после выполнения задания. Поэтому всегда учитывайте это время и старайтесь не ставить их на время близкое к окончанию суток из-за возможного неправильного расчёта следующей даты выполнения.

При создании задания или изменения его параметров ORACLE записывает текущие параметры NLS владельца. Эти параметры каждый раз восстанавливаются при выполнении задания. Это может приводить к некоторым ошибкам в случае ожидания других значений. Поэтому если необходимо лучше производить установку нужных NLS значений с помощью команды ALTER SESSION в параметре WHAT задания.

В качестве примера создадим простое задание, которое при запуске будет делать паузу в 20 секунд, первый раз выполниться 1 января 2006 года в 1 час 5 минут и будет повторяться каждый день в то же самое время.

Изменение задания

И так задание создано. Теперь попробуем изменить некоторые его параметры. Для изменения доступны следующие параметры задания: WHAT, NEXT_DATE, INTERVAL и INSTANCE. Их можно менять все одновременно или по отдельности. К примеру, следующая процедура пакета меняет все три параметра, при этом следует учитывать, что если какой либо из них равен NULL, то значение параметра не изменится.

А вот уже эта процедура меняет значение только параметра WHAT:

Также с параметрами NEXT_DATE,INTERVAL,INSTANCE:

В качестве примера, увеличим паузу, которое делает задание, созданное ранее, до 30 секунд и изменим, время повторного запуска задания на 3 часа 15 минут:

Изменить параметры или совершать другие действия над заданием можно только его владельцу. В противном случае возникнет ошибка ORA-23421: job number 24 is not a job in the job queue.

Удаление задания

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

Выключение задания

Если флаг BROKEN имеет значение истинно, то такое задание считается разрушенным и выполняться не будет. Параметр NEXT_DATE определяет здесь дату следующего выполнения задания и действует только при его включении.

В момент выключения задания параметр NEXT_DATE устанавливается в максимальное значение даты. Если не указать параметр NEXT_DATE в момент включения, то задание начнёт выполняться немедленно.

Для примера выключим задание:

Вынужденное выполнение задания

Если необходимо запустить задание в текущий момент времени, то сделать это можно с помощью следующей процедуры пакета:

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

Экспорт задания

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

Переменная mycall будет при этом содержать текст команды, с помощью которой можно заново создать задание.

Контроль задания

Как было указано выше, координатор заданий обращается в своей работе к системной таблице SYS.JOB$, хранящей описания всех заданий. На эту таблицу существуют три представления: DBA_JOBS, ALL_JOBS и USER_JOBS. Они наиболее часто используются для контроля над заданиями. Рассмотрим их некоторые столбцы:

Блокировки

Если подробнее разобрать представление DBA_JOBS_RUNNING, то можно увидеть что в его основе лежит соединение таблицы SYS.JOB$ и представления V$LOCK. Кажется, какая тут есть связь? Оказывается, есть и самая прямая. Для того чтобы гарантировать, что данное задание выполняется одновременно только в одном сеансе, Oracle выставляет блокировку JQ. Это можно хорошо видеть, сделав запрос к представлению V$LOCK во время выполнения задания:

При этом столбец ID2 будет указывать на идентификатор выполняемого задания.

Ошибки

Когда при выполнении задания происходит ошибка, в журнал уведомлений базы данных alert.log записывается сообщение об ошибке. Оно имеет примерно следующий вид:

Прерывание задания

Если необходимо прервать выполняющееся задание, то вначале надо его выключить. Затем определить sid и serial# сеанса с помощью следующего запроса:

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Формула интервалаОписание
NULLЗадание выполнится однократно и удалится.
TRUNC(SYSDATE+1)+n/24Задание будет выполняться ровно в n часов каждого дня
TRUNC(SYSDATE+1)+(n+(m/60))/24