【发布时间】:2021-04-05 12:51:45
【问题描述】:
我们开发了以 VB.NET 作为前端,SQL Server 作为后端的应用程序。当一个事务正在运行(保存)“表 1”中的数据时,该表在未提交运行的事务之前是不可读的。
我们应该使用哪个事务锁来避免脏读/数据垃圾?
【问题讨论】:
-
每个隔离级别可防止不同类型的异常,这取决于您对所需级别的谨慎程度。
-
谢谢查理。但是你能根据我的要求推荐合适的锁吗
-
不,我不能推荐一个合适的:正如我所说,这完全取决于你没有提到的事情。我可以建议使用哪个不
READ UNCOMMITEDakaNOLOCK,由于各种原因,这很糟糕。大多数人只使用READ COMMITTED。但是READ COMMITTED SNAPSHOT很好,但是在进行更新和删除时您必须注意它。SERIALIZABLE是一个目标,但它在锁定方面可能非常繁重,并导致很多死锁,如果你没有很多并发访问,这是一个可以使用的。 -
谢谢。我想使用 READ COMMITTED SNAPSHOT
标签: sql-server ado.net