Dbms_job vs dbms_scheduler.
-
08-10-2019 - |
Вопрос
В чем разница между dbms_job и dbms_scheduler?
Решение
С других форумов:
Хотя DBMS_JOB все еще существует в 10G и 11G, Oracle рекомендует использовать DBMS_SCHeduler в выпусках 10G и вверх. Никаких новых функций в DBMS_JOB не добавляются, и вы, вероятно, быстро столкнутся с его ограничениями.
DBMS_SCHEDULER - более прочная и полностью обозначается, чем DBMS_JOB и включает в себя следующие функции, которые DBMS_JOB не имеет:
- Регистрация рабочих мест (история работы)
- простой, но мощный синтаксис планирования (похоже на, но более мощный, чем синтаксис CRON)
- Запуск рабочих мест вне базы данных в операционной системе
- Управление ресурсами между различными классами рабочих мест
- Использование аргументов рабочих мест, в том числе прохождение объектов в сохраненные процедуры
- Модель безопасности на основе привилегий для рабочих мест
- Называть рабочие места и комментарии в рабочих местах
- хранимые, многоразовые расписания
Особенности в релизах после 10G Release 1 включают в себя:
- Зависимости между рабочими узлами (10гр2 и вверх)
- Планирование на основе финансовых календарей и фискальных кварталов (10гр2 и до)
- Работа на основе событий, которая запускается при получении события (10гр2 и вверх)
- Запуск рабочих мест на удаленных машинах (11гр1 и вверх)
- Уведомления по электронной почте о разработке интересов работы (10гр2 и вверх)
- Начало работы на основе прибытия файла (10гр2 и вверх)
Другие советы
Однозначное различие в том, что в отличие от dbms_job, dbms_scheduler выполняет коммит, что делает его непригодным для некоторых видов использования. Это также довольно громоздко для более простых требований. В то время как DBMS_JOB больше не будет расширена, вряд ли будет выдержан, поскольку должны быть тысячи систем, которые его используют, и полагаются на то, как он работает, в том числе не выполняет неявный коммит транзакции, из которой он назывался.
Видеть это просить Тома нить для большего.
Рядом с перечисленными являются некоторые преимущества, которые DBMS_SCHEDELER имеет через Cron:
• может сделать выполнение задания, зависящей от завершения другой работы
• Устойчивая балансировка ресурсов и гибкие функции планирования
• Может выполнить задания на основе события базы данных
• Синтаксис DBMS_SCheduler работает так же независимо от операционной системы
• Может выполнять отчеты о состоянии с использованием словаря данных
• Если работа в кластеризованной среде, не нужно беспокоиться о синхронизации нескольких таблиц CRON для каждого узла в кластере
Перечисленные следующие - некоторые преимущества использования CRON:
• Простота в использовании, простой, пробовал и правда
• почти универсально доступен на всех коробках Linux / Unix; По большей части проходит практически точно, независимо от платформы Linux / Unix (да, есть незначительные различия)
• база данных агностики; Работает независимо от базы данных и работает так же независимо от поставщика баз данных или версии базы данных
• Работает, доступна ли база данных или нет