- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
聊聊数据库中的那些锁
原子性(Atomicity)
一个事务(transaction)中的全部操作,或者全部完成,或者全部不完成,不会结束在两头某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开头前的形态,就像这个事务从来没有执行过一样。即,事务不行分割、不行约简。
全都性(Consistency)
在事务开头之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的材料必需完全符合全部的预设约束、触发器、级联回滚等。
隔离性(Isolation)
数据库允很多个并发事务同时对其数据进行读写和修改的力量,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不全都。事务隔离分为不同级别,包括未提交读(Read uncommitted)、提交读(read committed)、可反复读(repeatable read)和串行化(Serializable)。
长久性(Durability)
事务处理结束后,对数据的修改就是永久的,即便系统毛病也不会丢失。
来源:维基百科?/wiki/ACID
事务 (Transaction:)
事务是进程中最小的堆栈,不能分成更小的部分。此外,某些事务处理组可以按挨次执行,但正如我们在原子性准绳中所解释的那样,即便其中一个事务失败,全部事务块也将失败。
锁定 (Lock)
锁定是一种确保数据全都性的机制。SQL Server在事务启动时锁定对象。事务完成后,SQL Server将释放锁定的对象。可以依据SQL Server进程类型和隔离级别更改此锁定模式。这些锁定模式是:
锁定层次结构
SQL Server具有锁定层次结构,用于猎取此层次结构中的锁定对象。数据库位于层次结构的顶部,行位于底部。下图说明白SQL Server的锁层次结构。
共享(S)锁 (Shared (S) Locks)
当需要读取对象时,会发生此锁定类型。这种锁定类型不会形成太大问题。
独占(X)锁定 (Exclusive (X) Locks)
发生此锁定类型时,会发生以防止其他事务修改或访问锁定对象。
更新(U)锁 (Update (U) Locks)
此锁类型与独占锁类似,但它有一些差异。我们可以将更新操作划分为不同的阶段:读取阶段和写入阶段。在读取阶段,SQL Server不期望其他事务有权访问此对象以进行更改,因而,SQL Server使用更新锁。
意图锁定 (Intent Locks)
当SQL Server想要在锁定层次结构中较低的某些资源上猎取共享(S)锁定或独占(X)锁定时,会发生意图锁定。实际上,当SQL Server猎取页面或行上的锁时,表中需要设置意图锁。
SQL Server locking
了解了这些背景学问后,我们尝试再SQL Server找到这些锁。SQL Server供应了很多动态管理视图来访问目标。要识别SQL Server锁,我们可以使用sys.dm_tran_locks视图。在此视图中,我们可以找到有关当前活动锁管理的大量信息。
在第一个示例中,我们将创建一个不包含任何索引的演示表,并尝试更新此演示表。
CREATE TABLE TestBlock(Id INT ,Nm VARCHAR(100))INSERT INTO TestBlockvalues(1,CodingSight)In this step, we will create an open transaction and analyze the locked resources.BEGIN TRANUPDATE TestBlock SET Nm=NewValue_CodingSight where Id=1select @@SPID
再猎取到了SPID后,我们来看看sys.dm_tran_lock视图里有什么。
select * from sys.dm_tran_locks WHERE request_session_id=74
此视图前往有关活动锁资源的大量信息,但是是一些我们难以理解的一些数据。因而,我们必需将sys.dm_tran_locks?join 一些其他表。
SELECT dm_tran_locks.request_session_id, dm_tran_locks.resource_database_id, DB_NAME(dm_tran_locks.resource_database_id) AS dbname, CASE WHEN resource_type = OBJECT THEN OBJECT_NAME(dm_tran_locks.resource_associat
您可能关注的文档
最近下载
- 北师大文学院比较文学专业考研资料之类型学.pdf VIP
- 小波变换原理与应用PPT通用课件.pptx VIP
- 浙江农林大学有机化学2014年考研真题.doc VIP
- 2024年春江苏开放大学冲突管理060202综合性大作业.doc VIP
- 塑料制品(有限)公司双体系资料之风险分级管控体系实施手册.pdf VIP
- 《数控机床编程与仿真加工》课件——项目9斯沃数控铣仿真软件的操作.ppt VIP
- 2024人教版八年级英语上册全册教案.pdf VIP
- 阶段检测复习(第十三~十六章)课件 沪科版物理九年级全一册.pptx VIP
- 延安市新区北区控规说明书及图纸.pdf
- 2025至2030中国熊胆粉行业发展趋势分析与未来投资战略咨询研究报告.docx
原创力文档


文档评论(0)