2017-07-17 11 views
0

時間単位で実行する必要があるOracleプロシージャがあります。私のアプリケーションサーバーはLinuxベースで、私のデータベースはOracleです。今私は2つの選択肢があります。私はOracleでジョブを作成してスケジュールを設定することも、シェル・スクリプトを作成して、アプリケーション・サーバーのcronタブの助けを借りてスケジュールすることもできます。どのようなアプローチがデータベースのパフォーマンスの点で優れているのか、またその理由を教えてください。それとも両方のアプローチが同じパフォーマンス結果につながるか?はいの場合は、標準的なアプローチが必要です。Oracle dbでスケジュールされたジョブのパフォーマンスLinux cronタブでスケジュールされた同じジョブ

+0

データベースサーバーを参照するアプリケーションサーバー上にスクリプトを作成すると、2台のサーバーでパフォーマンスが低下します。 Oracleインスタンスだけでジョブを作成する場合、アプリケーションサーバーは影響を受けません。 –

答えて

1

性能面での違いはありません。いずれにしても、セッションが生成され、そのセッションのパフォーマンスが評価されます。

したがって、誰がサーバーにアクセスできるかによって異なります。 DBAのみのジョブの場合は、サーバー上での管理が容易になります。たとえば、倉庫で長時間実行されるレポートを作成するユーザーと共有されたジョブであれば、より簡単に管理できます。

cronジョブの欠点は、oracleがアップグレードされると、すべてのジョブを停止、移動、開始、テストする必要があり、これが苦労する可能性があるということです。

スケジューラジョブプロセスの欠点は、誰がどのジョブを実行したのかを追跡することが困難なことがあるため、ジョブ名に従業員とジョブ番号を一致させるスクリプトがあることです。

+1

多くのサイトでは、サーバーへのアクセスは管理者に制限されているため、cronで定義されたジョブは他の人には見えません。データベースログインを持つ人は誰でも自分のデスクトップからスケジューラビューを便利に照会できるため、開発、サポート、保守の観点からdbms_schedulerにアクセスしやすくなります。 –

関連する問題