加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – NOLOCK和UNCOMMITTED之间有什么区别?

发布时间:2020-12-12 16:14:30 所属栏目:MsSql教程 来源:网络整理
导读:我使用SQL Server 2012. 我写了两个查询,但NOLOCK和UnCommitted之间有什么区别? SELECT lastname,firstnameFROM HR.Employees with (READUNCOMMITTED)SELECT lastname,firstname FROM HR.Employees with (NoLock) 解决方法 NOLOCK:相当于READUNCOMMITTED(来
我使用SQL Server 2012.

我写了两个查询,但NOLOCK和UnCommitted之间有什么区别?

SELECT lastname,firstname
FROM HR.Employees with (READUNCOMMITTED)

SELECT lastname,firstname 
FROM HR.Employees with (NoLock)

解决方法

NOLOCK:相当于READUNCOMMITTED(来源: MSDN)

NOLOCK或READUNCOMMITTED指定允许脏读.不会发出共享锁,以防止其他事务修改当前事务读取的数据,而由其他事务设置的独占锁定不会阻止当前事务读取锁定的数据.允许脏读取可能导致更高的并发性,但是以读取数据修改为代价,然后被其他事务回滚

READUNCOMMITTED和NOLOCK提示仅适用于数据锁.所有查询(包括具有READUNCOMMITTED和NOLOCK提示的查询)在编译和执行期间获取Sch-S(模式稳定性)锁.因此,当并发??事务在表上保存Sch-M(模式修改)锁时,查询被阻止

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读