time 
设为首页】【收藏本站
当前位置: 主页 > 数据库 > SQL Server > SQL 死锁 > 列表



 
2012-10-16 12:38:13 | 好评(0) | 浏览(1482)
在上一篇中忘记了一个细节。Range T-K 到底代表了什么?Range T-K Lock 代表了在 SERIALIZABLE 隔离级别中,为了保护范围内的数据不被并发的事务影响而使用的一类锁模式(避免幻读)。它由两个部分构成: 第一个部分代表了他锁定了一个索引范围,在这个范围内,所有索...
 
2012-10-16 12:35:10 | 好评(0) | 浏览(1657)
在这篇随笔中,我们的主要关注点在 Key-Range Lock。Key-Range Lock有 S-S、S-U、I-N、X-X几种情况。我们一个一个来说,力求明白。遗憾的是,这里可能会比较冗长,那么死锁分析只好依次顺延了。 Range S-S锁的获取规则 MSDN 对 Range 锁的规则有部分描述,但是言简意赅...
 
2012-10-16 12:27:11 | 好评(0) | 浏览(1866)
最近在项目中进行压力测试遇到了数据库的死锁问题,简言之,如下的代码在 SERIALIZABLE 隔离级别造成了死锁: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT @findCount= COUNT (id) FROM MyTable WHERE [fk_related_id]=@Argument IF (@findCount 0) BEGIN ROLLBACK TRANS...
 
2012-10-16 12:22:31 | 好评(0) | 浏览(2790)
简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征...
 
2011-03-02 00:30:58 | 好评(0) | 浏览(671)
1. 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件: 互斥条件 (Mutual exclusion) :资源不能被共享,只能由一个进程使用。 请求与...
 
2011-03-02 00:26:01 | 好评(0) | 浏览(761)
【表A】与【表B】之间有外键约束(具体怎么约束的无所谓,因为 外键和事务死锁没有绝对关系 )。【表A】=主键表,【表B】=外键表。 如果多表操作出现死锁,那么应该是业务逻辑需要调整,或者程序逻辑不正确 使用事务时出现死锁,那么除去事务时,死锁一样会发生,而且...
 
2010-07-10 01:01:14 | 好评(0) | 浏览(813)
1. 数据库表锁定原理 1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整...
 
2010-01-18 22:44:47 | 好评(0) | 浏览(2457)
在两个或多个SQL Server进程中,每一个进程锁定了其他进程试图锁定的资源,就会出现死锁,例如,进程process1对table1持有1个排它锁(X),同时process1对table2请求1个排它锁(X),进程process2对table2持有1个排它锁(X),同时process2对table1请求1个排它锁(X) 类似这种情...
 
2009-05-29 11:42:37 | 好评(0) | 浏览(858)
其实所有的死锁最深层的原因就是一个——资源竞争。 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B,另一个用户B 访问表B(锁住了表B),然后企图访问表A。这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了...
 
2009-05-29 11:42:34 | 好评(0) | 浏览(647)
本文使用一个实例来说明如何使用乐观锁定和悲观锁定来解决多用户并发的环境里,其他用户已经把你要修改的数据进行了修改而造成数据的不一致的问题...
 
2009-05-29 11:42:30 | 好评(0) | 浏览(539)
各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别SQL Server更强调由系统来管理锁在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上适当的锁,同时系统在运行期间常常自动进行优化处理,实行动态加锁对于一般...
 
2009-05-29 11:42:29 | 好评(0) | 浏览(599)
死锁是指在某组资源中,两个或两个以上的线程在执行过程中,在争夺某一资源时而造成互相等待的现象,若无外力的作用下,它们都将无法推进下去,死时就可能会产生死锁,这些永远在互相等待的进程称为死锁线程...
 
2009-05-29 11:42:25 | 好评(0) | 浏览(626)
6月14日,微软顶级数据库专家与51CTO网友就“怎样成为一名高效的DBA?”这一主题进行了面对面的热烈讨论本文总结了连锁零售行业在构建数据库上需要考虑的一些方面,供大家参考!...
 
2009-05-29 11:42:16 | 好评(0) | 浏览(612)
SQL Server死锁问题发生在两个用户进程分别锁定了不同的资源,接着又试图锁定对方所锁定的资源的情况时对于SQL Server的死锁问题,本文提供了几则实践中很有用的小技巧...
 
2009-03-22 02:56:24 | 好评(0) | 浏览(558)
SQL Server锁: 1.HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁。 2.NOLOCK:不添加共享锁和排它锁,当这个选项生效后,可能读到未提交读的数据或脏数据,这个选项仅仅应用于select语句。 3.PAGLOCK:指定添加页锁(否则...