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

 更新时间:2013年08月16日 10:06:02   作者:  
以下是对Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁进行了详细的介绍,需要的朋友可以过来参考下

锁有两种分类方法。
(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)
悲观锁对数据库系统的自动管理不感冒,需要程序员直接管理数据或对象上的加锁处理,并负责获取、共享和放弃正在使用的数据上的任何锁。

相关文章

  • 文本、Excel、Access数据导入SQL Server2000的方法

    文本、Excel、Access数据导入SQL Server2000的方法

    昨天参加一个项目的维护,因为各种原因,数据在不同服务器上不一致,所以需要重新将数据库清空一次,并将整理后的数据重新导入。需导入的数据源为文本文件,记录以行存储,“,”逗号分割各字段,每个字段值用“”双引号封闭。
    2008-10-10
  • SQL的Join使用图解教程

    SQL的Join使用图解教程

    对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚
    2012-08-08
  • 分享Sql日期时间格式转换

    分享Sql日期时间格式转换

    这篇文章介绍了Sql日期时间格式转换,有需要的朋友可以参考一下
    2013-08-08
  • SQLServer清理日志文件方法案例详解

    SQLServer清理日志文件方法案例详解

    这篇文章主要介绍了SQLServer清理日志文件方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • SQL语句查询数据库中重复记录的个数

    SQL语句查询数据库中重复记录的个数

    一个sql语句:一个表test有四个字段id,a,b,c,如果表中的记录有三个字段a,b,c都相等,则说明这条记录是相同的,求相同的记录的个数 。
    2009-11-11
  • sql 语句练习与答案

    sql 语句练习与答案

    一些对初学者非常有用的练习,及练习的答案。希望可以给初学者一些帮助
    2013-06-06
  • MSSQL 检查所使用的语句是否符合标准

    MSSQL 检查所使用的语句是否符合标准

    标准SQL和T-SQL之间有很多区别——太多了,这里就不说了。还有,如果你在SQL Server上工作, 那么使用这些私有的扩展是有好处的。
    2009-11-11
  • SqlServer数据库备份与还原的实现步骤

    SqlServer数据库备份与还原的实现步骤

    这篇文章主要介绍了SqlServer数据库备份与还原的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Linux下安装SQLServer2019的方法

    Linux下安装SQLServer2019的方法

    这篇文章主要介绍了Linux下安装SQLServer2019的方法,本文通过命令介绍及图文解析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • SQL语言查询基础:连接查询 联合查询 代码

    SQL语言查询基础:连接查询 联合查询 代码

    SQL语言查询基础:连接查询 联合查询 代码...
    2007-03-03

最新评论