dbms_job vs dbms_scheduler
-
08-10-2019 - |
質問
dbms_jobとdbms_schedulerの違いは何ですか?
解決
他のフォーラムから:
dbms_jobは10gと11gにまだ存在しますが、Oracleは10g以上のリリースでdbms_schedulerを使用することを推奨しています。 dbms_jobに新しい機能が追加されていないため、すぐにその制限に遭遇する可能性があります。
dbms_schedulerは、dbms_jobよりも堅牢で完全に食べられており、dbms_jobにはない次の機能が含まれています。
- ジョブランのロギング(職歴)
- シンプルだが強力なスケジューリング構文(Cron構文よりも強力ですが、より強力)
- オペレーティングシステムのデータベース外でジョブの実行
- さまざまなクラスのジョブ間のリソース管理
- オブジェクトをストアドプロシージャに渡すことを含む職務引数の使用
- ジョブの特権ベースのセキュリティモデル
- 仕事の仕事とコメントの命名
- 保存された、再利用可能なスケジュール
10Gリリース1後のリリースの機能には、以下が含まれます。
- ジョブユニット間の依存関係(10GR2以降)
- 金融カレンダーと財政四半期に基づくスケジュール(10GR2以上)
- イベントを受け取ったときに実行されるイベントベースのジョブ(10gr2以上)
- リモートマシンでのジョブの実行(11GR1以降)
- 関心のあるジョブイベントに関する電子メール通知(10gr2以上)
- ファイルの到着に基づいてジョブを開始する(10gr2以上)
他のヒント
注意すべき違いの1つは、dbms_jobとは異なり、dbms_schedulerがコミットを実行することであり、一部の用途には適していないことです。また、より単純な要件についてはかなり面倒です。 dbms_jobは強化されなくなりますが、それを使用している数千のシステムが、それが呼ばれたトランザクションの暗黙的なコミットを実行しないことを含めて、それが機能する方法に依存している必要があるため、脱コップされる可能性は低いです。
見る これはトムスレッドに尋ねます 多くのための。
次にリストされているのは、DBMS_SCHEDULERがCRONに及ぼす利点の一部です。
•別のジョブの完了に依存するジョブの実行を行うことができます
•堅牢なリソースバランスと柔軟なスケジューリング機能
•データベースイベントに基づいてジョブを実行できます
•dbms_scheduler構文は、オペレーティングシステムに関係なく同じ動作します
•データ辞書を使用してステータスレポートを実行できます
•クラスター化された環境で動作する場合、クラスター内の各ノードの複数のクロンテーブルの同期を心配する必要はありません
次にリストされているのは、Cronを使用することの利点の一部です。
•使いやすく、シンプルで、試行され、真実
•すべてのLinux/Unixボックスでほぼ普遍的に利用可能。ほとんどの場合、Linux/Unixプラットフォームに関係なく、ほぼ同じように実行されます(はい、わずかな違いがあります)
•データベース不可視。データベースとは独立して動作し、データベースベンダーまたはデータベースバージョンに関係なく同じ動作
•データベースが利用可能かどうかにかかわらず、動作します