理解SQL Server中的锁—T-SQL查询进阶(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-26 22:00 点击:
    
 
    图13.当更新一行时,其所在的页和表都会获得意向锁
 
    其它类型的构架锁,键范围锁和大容量更新锁就不详细讨论了,参看MSDN官网 (http://msdn.microsoft.com/zh-cn/library/ms175519.aspx)
 
    锁之间的兼容性微软提供了一张详细的表,如图14所示。
    
 
    图14.锁的兼容性列表
 
理解死锁
    当两个进程都持有一个或一组锁时,而另一个进程持有的锁和另一个进程视图获得的锁不兼容时。就会发生死锁。这个概念如图15所示。
    
 
     图15.死锁的简单示意
 
     下面我们根据图15的概念,来模拟一个死锁,如图16所示。
     
 
     图16.模拟一个死锁
 
     可以看到,出现死锁后,SQL Server并不会袖手旁观让这两个进程无限等待下去,而是选择一个更加容易Rollback的事务作为牺牲品,而另一个事务得以正常执行。
 
总结
    本文简单介绍了SQL Server中锁的概念,原理,以及锁的粒度,模式,兼容性和死锁。透彻的理解锁的概念是数据库性能调优以及解决死锁的基础。
 
 
 
作者 宋沄剑 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行

数据库技术导航

SqlserverMysqlOracleDB2数据库数据库综合
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1