我们有一个 ASP.NET Web 应用程序,它向 Windows 服务发送请求以删除/更新多个表中的记录。Windows 服务在存储过程中执行此操作,并且该调用位于 ADO.NET TransactionScope 中。
如果涉及的记录数很多,则需要 20-30 秒,在此期间如果用户尝试访问涉及这些表的 ASP.NET Web 应用程序的其他部分(将在不同的连接中),他会收到超时错误(因为交易仍在进行中)
我可以更改选择查询以包含with(nolock)
提示或包含SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
在选择存储过程中。但是,这意味着我需要更改目前不可行的所有选择存储过程。
另外,我不能使用SNAPSHOT
事务隔离模型,因为我需要将数据库的隔离模型设置为SNAPSHOT
此时不可能。
有什么选择吗?