複数のテーブルに挿入する SQL Server 2008 r2 ストアド プロシージャを大量に呼び出す .net WCF サービス (IIS 7.5 でホスト) があります。この WCF サービスのクライアントは 24 時間年中無休で使用されますが、夜間は処理される要求の量が少なくなります。ほとんどの場合、これは問題なく機能しますが、月に一度、同じテーブルに大量の挿入を行う SSIS ジョブを実行する必要があります。SSIS ジョブが実行されると (完了するまでに約 4 時間かかります)、WCF サービスに問題が発生し、タイムアウトが発生します。
私の最初の考えは、後でメインテーブルにマージされる一時テーブルに挿入が行われるように、ストアドプロシージャを修正することでした。ただし、SQL サーバーを担当する DBA は、SSIS ジョブが実行されている間、サーバーが完全に使い果たされていることを教えてくれました。
したがって、SQL Server にヒットしない何らかの形式のキャッシュ/キューを考え出す必要があります。このキャッシュは、回復力とスケーラビリティも必要です。App Fabric キャッシュはこれに最適なツールですか? API をざっと見たところ、キューのようにそれを利用する明確な方法がわかりませんでした。キャッシュから取得するメソッドにはキーが必要なようです。サービスを使用して、キャッシュからプルし、永続的な SQL ストアに書き込みます (SSIS ジョブが完了したら)。
過去に、MSMQ を使用して同様の問題を解決しましたが、これに関するすべてのドキュメントは非常に古いように思われるため、最近では App Fabric Cache が推奨される選択肢でしょうか?
ありがとう、
ロブ。