毎朝実行する必要のあるテーブルにストアドプロシージャ(1000以上)のリストがあります。
ストアドプロシージャは相互に依存していません。
以前は実行に時間がかかっていたwhileループとカーソルを試しました。
ストアドプロシージャごとにジョブを作成し、並列処理のレベルを取得してsp_start_job
(sp_start_job
非同期方式で呼び出される)それらを呼び出す方法を教えました。
新しいストアドプロシージャがリストに追加され、それが巨大になると、問題が発生します。
しばらくの間、pplはジョブ関連の新しいストアドプロシージャを作成できませんでした
DBは仕事がないことに襲われました(DBAの管理性の問題)
注:リストはいつでも変更される可能性があります(ストアドプロシージャはリストに追加したり、リストから削除したりできます)。
SPの実行時間が長くなる場合は、1000 SPを5〜10の番号に分類し、次に各カテゴリに1つのSSISパッケージを分類し、次に各パッケージにエージェントジョブを分類します。次に、それらのジョブを同時にスケジュールします。
ループ、スクリプティング、およびそれを実現するための複数の要因のような多くの方法があります。さまざまな方法でテストし、最適な方法でテストできます。
注:SSIS実行のパフォーマンスは、メモリ、プロセッサ、およびハードウェアによって異なります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加