对SQL Server锁模式的描述 |
本文标签:SQL Server锁模式 以下的文章主要描述的是SQL Server锁模式的描述,其意向共享 (IS) 通过在各资源上放置 S 锁,表明事务的意向主要是读取层次结构中的部分(而不是全部)底层资源 。意向排它 (IX) 通过在各资源上放置 X 锁 。 表明事务的意向是修改层次结构中的部分(而不是全部)底层资源 。IX 是 IS 的超集 。 与意向排它共享 (SIX) 通过在各资源上放置 IX 锁,表明事务的意向是读取层次结构中的全部底层资源并修改部分(而不是全部)底层资源 。允许顶层资源上的并发 IS 锁 。例如,表的 SIX 锁在表上放置一个 SIX 锁(允许并发 IS 锁),在当前所修改页上放置 IX 锁(在已修改行上放置 X 锁) 。 虽然每个资源在一段时间内只能有一个 SIX 锁,以防止其它事务对资源进行更新,但是其它事务可以通过获取表级的 IS 锁来读取层次结构中的底层资源 。 独占锁: 只允许进行锁定操作的程序使用,其他任何对他的操作均不会被接受 。执行数据更新命令时,SQL Server会自动使用独占锁 。当对象上有其他锁存在时,无法对其加独占锁 。 共享锁:共享锁锁定的资源可以被其他用户读取,但其他用户无法修改它,在执行Select时,SQL Server会对对象加共享锁 。 更新锁: 当SQL Server准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取 。等到SQL Server确定要进行更新数据操作时,他会自动将更新锁换为独占锁,当对象上有其他锁存在时,无法对其加更新锁 。 从程序员的角度看:分为乐观锁和悲观锁 。 乐观锁:完全依靠数据库来管理锁的工作 。 悲观锁:程序员自己管理数据或对象上的锁处理 。 MS-SQLSERVER 使用锁在多个同时在数据库内执行修改的用户间实现悲观并发控制 以上的相关内容就是对SQL Server锁模式的描述的介绍,望你能有所收获 。 上述的相关内容就是对SQL Server锁模式描述的描述,希望会给你带来一些帮助在此方面 。 |