DBMS_JOB против DBMS_SCHEDULER - PullRequest
       50

DBMS_JOB против DBMS_SCHEDULER

18 голосов
/ 11 ноября 2010

В чем разница между DBMS_JOB и DBMS_SCHEDULER?

Ответы [ 3 ]

19 голосов
/ 11 ноября 2010

Из других форумов:

Хотя dbms_job все еще существует в 10g и 11g, Oracle рекомендует использовать dbms_scheduler в выпусках 10g и выше.В dbms_job не добавляются новые функции, и вы, скорее всего, быстро столкнетесь с его ограничениями.

dbms_scheduler более надежен и полнофункциональн, чем dbms_job, и включает в себя следующие функции, которых не имеет dbms_job:

  • регистрация выполненных заданий (история заданий)
  • простой, но мощный синтаксис планирования (аналогичный, но более мощный, чем синтаксис cron)
  • выполнение заданий вне базы данных в операционной системе
  • управление ресурсами между различными классами заданий
  • использование аргументов задания, включая передачу объектов в хранимые процедуры
  • модель безопасности на основе привилегий для заданий
  • присвоение имензаданий и комментариев в заданиях
  • сохраненные, повторно используемые расписания

Функции в выпусках после 10g Выпуск 1 включают в себя:

  • зависимости между заданиями (10gR2 ивверх)
  • планирование на основе финансовых календарей и финансовых кварталов (10gR2 и выше)
  • база событийd заданий, которые запускаются при получении события (10gR2 и выше)
  • выполнение заданий на удаленных машинах (11gR1 и выше)
  • уведомления по электронной почте об интересующих событиях заданий (10gR2 и выше))
  • запуск задания на основе поступления файла (10gR2 и выше)
16 голосов
/ 11 ноября 2010

Следует иметь в виду, что в отличие от DBMS_JOB, DBMS_SCHEDULER выполняет фиксацию, что делает его непригодным для некоторых целей.Это также довольно громоздко для более простых требований.Хотя DBMS_JOB больше не будет улучшаться, его вряд ли когда-либо поддержат, поскольку должны быть тысячи систем, которые используют его и полагаются на его работу, в том числе не выполняют неявную фиксацию транзакции, из которой она была вызвана.

См. в этом вопросе Тома , чтобы узнать больше.

0 голосов
/ 07 августа 2016

Ниже перечислены некоторые преимущества DBMS_SCHEDULER по сравнению с cron:

• Может сделать выполнение задания зависимым от завершения другого задания

• Надежные функции балансировки ресурсов и гибкого планирования

• Может запускать задания на основе события базы данных

• Синтаксис DBMS_SCHEDULER работает одинаково независимо от операционной системы

• Может запускать отчеты о состоянии, используя словарь данных

• При работе в кластерной среде не нужно беспокоиться о синхронизации нескольких таблиц cron для каждого узла в кластере

Ниже перечислены некоторые преимущества использования cron:

• Простой в использовании, простой, проверенный и верный

• Почти повсеместно доступен на всех Linux / Unix коробках; по большей части работает почти одинаково независимо от платформы Linux / Unix (да, есть небольшие различия)

• База данных не зависит; работает независимо от базы данных и работает одинаково независимо от поставщика базы данных или версии базы

• Работает независимо от того, доступна база данных или нет

...