vic*_*csz 1 sql-server oracle locking
我已经读过旧版本的SQL Server ..它有一个悲观的锁定策略.即读者等待编写者访问相同的数据(行或页面级别),这与Oracle不同.
在较新版本中仍然如此吗?我已经读过锁定策略在最近的版本中已经改变了.
您所听到的是SNAPSHOT ISOLATION,自SQL Server 2005以来可用.快照隔离,又名.行版本控制,是Oracle中的默认行为.通过READ_COMMITTED_SNAPSHOT在数据库上启用,您也可以在SQL Server中将其设置为默认值:
ALTER DATABASE [<dbname>] SET READ_COMMITTED_SNAPSHOT ON;
Run Code Online (Sandbox Code Playgroud)
对于行版本控制,SQL Server在读取期间不会获取数据锁定.如果发生并发写入,则读取将获取该行的先前版本.有关更多详细信息,请在数据库引擎中读取基于行版本控制的隔离级别.
您不应该将行版本控制和快照与脏读取混淆.脏读取提供了不一致的数据,这使得编程成为一种挑战,至少可以说(即你不应该使用它!).快照读取始终提供事务一致的数据映像.