サーバー上で同時に実行したい多数のストアド プロシージャがあります。理想的には、外部クライアントへの接続に依存せずに、すべてサーバー上で実行します。
これらすべてを起動して同時に実行するには、どのようなオプションがありますか (追加の作業を行うためにすべてのプロセスが完了するまで待つ必要さえありません)。
私は考えました:
- クライアントから複数の接続を開始し、それぞれが適切な SP を開始する。
- 各 SP のジョブを設定し、SQL Server 接続または SP からジョブを開始します。
- xp_cmdshell を使用して、osql またはその他と同等の追加の実行を開始する
- SSIS - より多くの SP を処理するためにパッケージを動的に記述できるかどうかを確認する必要があります。クライアントが本番環境にどの程度アクセスするかわからないためです。
ジョブとコマンドシェルのケースでは、おそらく DBA から許可レベルの問題に遭遇するでしょう...
SPリストをテーブル駆動できる場合、SSISは良い選択肢かもしれません。
これはデータ ウェアハウスの状況であり、作業はほとんど独立しており、NOLOCK は恒星で広く使用されています。このシステムは 8 ウェイ 32 GB のマシンなので、問題が発生した場合はロード ダウンしてスケール バックします。
私は基本的に3つのレイヤーを持っています.レイヤー1には少数のプロセスがあり、基本的にすでに読み込まれているすべての事実/次元に依存しています. 2 にはレイヤー 1 の一部またはすべてに依存するプロセスがいくつかあり、レイヤー 3 にはレイヤー 2 の一部またはすべてに依存するプロセスがいくつかあります。それらはレイヤー内で直交しているため、同時に特定のレイヤーでプロシージャーを実行します。