0

Windows サービスに要求を送信して、多数のテーブルのレコードを削除/更新する ASP.NET Web アプリケーションがあります。Windows サービスはストアド プロシージャでこれを行い、その呼び出しは ADO.NET TransactionScope にあります。

関連するレコードの数が多い場合、20 ~ 30 秒かかり、その間、ユーザーがそれらのテーブルを含む ASP.NET Web アプリケーションの他の部分 (別の接続にある) にアクセスしようとすると、タイムアウト エラーが発生します (トランザクションがまだ進行中のため)

選択クエリを変更して、with(nolock)ヒントを含めるかSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 、選択ストアド プロシージャに含めることができます。ただし、これは、現時点では実行できないすべての選択ストアド プロシージャを変更する必要があることを意味します。

また、現時点では不可能なSNAPSHOTデータベースの分離モデルを設定する必要があるため、トランザクション分離モデルを使用できません。SNAPSHOT

代替案はありますか?

4

1 に答える 1

0

データベースをスナップショットアイソレーションに変更できず、すべてのSELECTプロシージャに触れてダーティ読み取りを許可できない場合、データの削除または更新の方法を変更できますか?ストアドプロシージャを変更して、削除や更新のバッチを小さくすることはできますか?

于 2012-07-02T04:33:32.813 に答える