我想了解更多关于sql_server的内部行为。
我的问题是我正在尝试创建一个多用户数据库,但我正在尝试并发数据问题。
举个例子:
我的问题是:
答案 0 :(得分:0)
打开一个aplication,修改tableA中没有的内容 comitting
不要编写执行此操作的应用程序。在用户操作期间,任何应用程序都不应持有锁。编辑表单不应该锁定数据。阅读Optimistic Concurency。
应用程序仍会偶尔阻止,最好的方法是部署基于行的版本控制,也就是说。快照隔离。见Understanding Row Versioning-Based Isolation Levels。
答案 1 :(得分:0)
UserB被阻止,直到userA提交
任何现代DBMS都不是这样。几乎所有这些都实现了某种MVCC,以便作者阻止读者,读者不会阻止作者。
如果我没弄错,这仍然是Microsoft SQL Server的默认行为(即使在2012年),但可以更改为允许更高的并发性