当前位置:  数据库>sqlserver

浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁

    来源: 互联网  发布时间:2014-10-12

    本文导语:  锁有两种分类方法。(1) 从数据库系统的角度来看锁分为以下三种类型: •独占锁(Exclusive Lock)独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或...

锁有两种分类方法。
(1) 从数据库系统的角度来看
锁分为以下三种类型:

•独占锁(Exclusive Lock)
独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或DELETE 命令时,SQL Server 会自动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。独占锁一直到事务结束才能被释放。

•共享锁(Shared Lock)
共享锁锁定的资源可以被其它用户读取,但其它用户不能修改它。在SELECT 命令执行时,SQL Server 通常会对对象进行共享锁锁定。通常加共享锁的数据页被读取完毕后,共享锁就会立即被释放。

•更新锁(Update Lock)
更新锁是为了防止死锁而设立的。当SQL Server 准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取。等到SQL Server 确定要进行更新数据操作时,它会自动将更新锁换为独占锁。但当对象上有其它锁存在时,无法对其作更新锁锁定。

(2)从程序员的角度看
锁分为以下两种类型:

•乐观锁(Optimistic Lock)
乐观锁假定在处理数据时,不需要在应用程序的代码中做任何事情就可以直接在记录上加锁、即完全依靠数据库来管理锁的工作。一般情况下,当执行事务处理时SQL Server会自动对事务处理范围内更新到的表做锁定。

•悲观锁(Pessimistic Lock)
悲观锁对数据库系统的自动管理不感冒,需要程序员直接管理数据或对象上的加锁处理,并负责获取、共享和放弃正在使用的数据上的任何锁。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery重复提交请求的原因浅析
  • 浅析删除表的几种方法(delete、drop、truncate)
  • 浅析Oracle中char和varchar2的区别
  • 浅析java中print和println的区别
  • 浅析java class 文件
  • 求教,linux内核代码关于网络部分的浅析
  • 浅析如何在tnsnames.ora中配置监听
  • 浅析ThinkPHP中execute和query方法的区别
  • 浅析C#的复制和克隆
  • 浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
  • 浅析MySQL之字符串函数
  • 浅析jquery的作用与优势
  • 浅析SQL server 临时表
  • 浅析c++ 宏 #val 在unicode下的使用
  • 浅析c#中如何在form的webbrowser控件中获得鼠标坐标
  • 浅析SQL语句中GROUP BY的用法
  • PHP强制下载文件方法浅析
  • 浅析打开eclipse出现Incompatible JVM的解决方法
  • 浅析SQL存储过程和事务处理
  • C#访问权限修饰符浅析


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3