ASP.NETアプリケーションでは、データベースに対して実行するために、かなり複雑で頻繁に使用される操作がいくつかあります。これらの操作では、いくつかのテーブルの1つ以上が、特定のテーブルの入力パラメーターと値の両方の論理評価に基づいて更新または挿入する必要があります。ロジックとデータアクセスの分離を維持しているので、操作は現在次のようになります。
- クライアントから受け取ったリクエスト
- ビジネスレイヤーはデータレイヤーを呼び出してデータベースからデータを取得します
- ビジネスレイヤーは結果を処理し、実行する操作を決定します
- ビジネスレイヤーは適切なデータ操作を呼び出します
- クライアントに送信された応答
ご覧のとおり、データベースに対して2つの個別の要求が行われている間、クライアントは待機し続けます。これに対する解決策を探しているときに、CLRストアドプロシージャを見つけましたが、それらが何に役立つかについて正しい考えがあるかどうかはわかりません。
上記のコードの代わりに、特にステップ2〜4をCLRSPに配置するものを作成しました。私の理解では、SPはSQL Serverによってローカルで実行され、サーバーに対して1回の呼び出しのみが行われます。
私の質問は基本的に、これはCLR SPの使用目的ですか、それとも何かが足りないのですか?
これは構造的に少し妥協していることを理解しているので、もっと良い方法があれば聞いてみたいと思います。