SET TRANSACTION READ WRITE和READ COMMITTED的区别
答案:2 悬赏:30 手机版
解决时间 2021-02-15 09:21
- 提问者网友:寂寞梧桐
- 2021-02-15 04:57
SET TRANSACTION READ WRITE和READ COMMITTED的区别
最佳答案
- 五星知识达人网友:西风乍起
- 2021-02-15 05:36
SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
READ COMMITTED
控制到 SQL Server 的连接发出的 Transact-SQL 语句的锁定行为和行版本控制行为。
指定语句不能读取已由其他事务修改但尚未提交的数据。这样可以避免脏读。其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和幻像数据。该选项是 SQL Server 的默认设置。
READ COMMITTED 的行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:
如果将 READ_COMMITTED_SNAPSHOT 设置为 OFF(默认设置),则数据库引擎 会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。语句完成后便会释放共享锁。
如果将 READ_COMMITTED_SNAPSHOT 设置为 ON,则数据库引擎 会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在。不使用锁来防止其他事务更新数据。
READ COMMITTED
控制到 SQL Server 的连接发出的 Transact-SQL 语句的锁定行为和行版本控制行为。
指定语句不能读取已由其他事务修改但尚未提交的数据。这样可以避免脏读。其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和幻像数据。该选项是 SQL Server 的默认设置。
READ COMMITTED 的行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:
如果将 READ_COMMITTED_SNAPSHOT 设置为 OFF(默认设置),则数据库引擎 会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。语句完成后便会释放共享锁。
如果将 READ_COMMITTED_SNAPSHOT 设置为 ON,则数据库引擎 会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在。不使用锁来防止其他事务更新数据。
全部回答
- 1楼网友:洒脱疯子
- 2021-02-15 06:15
set transaction isolation level (transact-sql)
read committed
控制到 sql server 的连接发出的 transact-sql 语句的锁定行为和行版本控制行为。
指定语句不能读取已由其他事务修改但尚未提交的数据。这样可以避免脏读。其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和幻像数据。该选项是 sql server 的默认设置。
read committed 的行为取决于 read_committed_snapshot 数据库选项的设置:
如果将 read_committed_snapshot 设置为 off(默认设置),则数据库引擎 会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。语句完成后便会释放共享锁。
如果将 read_committed_snapshot 设置为 on,则数据库引擎 会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在。不使用锁来防止其他事务更新数据。
当 read_committed_snapshot 数据库选项设置为 on 时,您可以使用 readcommittedlock 表提示为 read_committed 隔离级别上运行的事务中的各语句请求共享锁,而不是行版本控制。
参考链接:http://msdn.microsoft.com/zh-cn/library/ms173763.aspx
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯