数据库锁机制的模式有几种

  SQL Server中,锁是中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。

  我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。这些问题包括:丢失更新、脏读、不可重复读和幻觉读。数据库加锁就是为了解决以上的问题。


  当然,加锁固然好,但是一定要避免死锁的出现。

  锁的模式和兼容性

  在数据库中加锁时,除了可以对不同的资源加锁,还可以使用不同程度的加锁方式,即锁有多种模式,SQL Server中锁模式包括:

  1.共享锁

  SQL Server中,共享锁用于所有的只读数据操作。共享锁是非独占的,允许多个并发事务读取其锁定的资源。默认情况下,数据被读取后,SQL Server立即释放共享锁。

  2.修改锁

  修改锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象。因为使用共享锁时,修改数据的操作分为两步,首先获得一个共享锁,读取数据,然后将共享锁升级为独占锁,然后再执行修改操作。这样如果同时有两个或多个事务同时对一个事务申请了共享锁,在修改数据的时候,这些 事务都要将共享锁升级为独占锁。这时,这些事务都不会释放共享锁而是一直等待对方释放,这样就造成了死锁。如果一个数据在修改前直接申请修改锁,在数据修改的时候再升级为独占锁,就可以避免死锁。修改锁与共享锁是兼容的,也就是说一个资源用共享锁锁定后,允许再用修改锁锁定。

  3.独占锁

  独占锁是为修改数据而保留的。它所锁定的资源,其他事务不能读取也不能修改。独占锁不能和其他锁兼容。

  4.结构锁

  结构锁分为结构修改锁(Sch-M)和结构稳定锁(Sch-S)。执行表定义语言操作时,SQL Server采用Sch-M锁,编译查询时,SQL Server采用Sch-S锁。

  5.意向锁

  意向锁说明SQL Server有在资源的低层获得共享锁或独占锁的意向

  6.批量修改锁

  批量复制数据时使用批量修改锁。可以通过表的TabLock提示或者使用系统存储过程sp_tableoption的“table lock on bulk load”选项设定批量修改锁。

推荐阅读

    win10安全模式

    win10安全模式,安全模式,重启,选项,点击,界面,系统,设置,有的用户在更新成win10系统之后不会进入安全模式了,对此,win10系统进入安全模式如

    win10进入安全模式的方法步骤

    win10进入安全模式的方法步骤,步骤,方法,安全模式,启动,点击,设置,更新,当win10系统使用中出现了问题,比如中毒,硬件冲突等蓝屏时,可以考虑进

    win10安全模式怎么进入

    win10安全模式怎么进入,安全模式,选择,方法,选项,点击,步骤,系统,电脑Windows系统都有一个特殊的安全模式,在电脑遇到问题时我们通常都可以

    微星主板怎么进入bios模式

    微星主板怎么进入bios模式,模式,快速,步骤,启动,快捷键,显示器,看看吧,通常而言,每种电脑主板都有对应的进入bios模式的启动快捷键,那么微信

    数据库SQL server 2012的安装教程

    数据库SQL server 2012的安装教程,安装教程,数据库,安装过程,安装,选择,默认,更新,想必大家都听说过数据库SQL server 2012,但是对于它的安

    正版win7怎样修改任务栏颜色?

    正版win7怎样修改任务栏颜色?,修改,任务栏,正版,用户,窗口,咨询,设置,众所周知,长久以来我们已经习惯了正版win7系统任务栏的蓝色背景,但是用

    Sql server2008正版数据库报价

    Sql server2008正版数据库报价,报价,数据库,正版,平台,数据,集成,用户,SQL是英文Structured Query Language的缩写,意思为结构化查询语言。

    Win10如何以兼容模式打开程序

    Win10如何以兼容模式打开程序,兼容模式,选择,模式,程序运行,系统,卡下,测试, 虽然Win10系统发布已经有一段时间,但在程序兼容性上仍

    Windows系统sid修改方法

    Windows系统sid修改方法,修改,系统,封装,查看,方法,运行,安装系统,  一、Sid的含义Sid全称为security identity,即网络安全标示。它用来

    数据库有几种 ,它的作用是什么

    数据库有几种 ,它的作用是什么,数据库,服务器,系统,用户,临时表,作用,运行,  服务器自身所使用的数据库,也可以说是管理服务器和用户数据

    Sql数据库服务怎么弄

    Sql数据库服务怎么弄,服务,数据库,服务器,命令,开启,安装,启动,  Sql数据库服务怎么弄?用数据库时开启服务是需要的,我给大家具体介绍几

    数据库的性能从哪几方面测试么呢

    数据库的性能从哪几方面测试么呢,性能,数据库,硬件,数据库引擎,系列,测试,瓶颈,  数据库的性能有很多种 1:速度性能2:并发性能3:事务性能,在

    什么是数据库的镜像

    什么是数据库的镜像,镜像,数据库,主体,服务器,同步,可用性,安全性,  “数据库镜像”是一种提高 SQL Server 数据库的可用性的解决方案。