SQLServer中死锁产生的原因及解决办法

server|sqlserver|解决

其实所有的死锁最深层的原因就是一个:资源竞争
表现一:
一个用户A 访问表A(锁住了表A),然后又访问表B
另一个用户B 访问表B(锁住了表B),然后企图访问表A
这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了
同样用户B要等用户A释放表A才能继续这就死锁了
解决方法:
这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法
仔细分析你程序的逻辑,
1:尽量避免同时锁定两个资源
2: 必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源.

表现二:
用户A读一条纪录,然后修改该条纪录
这是用户B修改该条纪录
这里用户A的事务里锁的性质由共享锁企图上升到独占锁(for update),而用户B里的独占锁由于A有共享锁存在所以必须等A释
放掉共享锁,而A由于B的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁。
这种死锁比较隐蔽,但其实在稍大点的项目中经常发生。
解决方法:
让用户A的事务(即先读后写类型的操作),在select 时就是用Update lock
语法如下:
select * from table1 with(updlock) where ....

 

 

时间: 2024-09-13 09:14:13

SQLServer中死锁产生的原因及解决办法的相关文章

总结 SQL Server 中死锁产生的原因及解决办法

server|解决 其实所有的死锁最深层的原因就是一个:资源竞争表现一:    一个用户A 访问表A(锁住了表A),然后又访问表B    另一个用户B 访问表B(锁住了表B),然后企图访问表A    这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了    同样用户B要等用户A释放表A才能继续这就死锁了解决方法:    这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法    仔细分析你程序的逻辑,    1:尽量避免同时锁

Windows7中下载掉线的原因及解决办法

  下载是我们上网最常做的事情,在Windows 7中使用下载软件下载量,有时会有这样的问题,长时间下载时,就会自动停止下载,下载软件也会处于掉线状态.下面我们来看看在Windows 7中下载掉线的解决办法. 经过多翻搜索.检查后,问题终于搞明白了,原来是网卡电源设置问题造成的. 解决方法如下: 进入Windows7控制面板,依次单击:网络和Internet选→网络和共享→更改适配器设置. 右击"本地连接"选择"属性",打开"属性"对话框,单击&

Asp.net 默认配置下,Session莫名丢失的原因及解决办法

Asp.net 默认配置下,Session莫名丢失的原因及解决办法 正常操作情况下Session会无故丢失.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 这次到CSDN上搜了一下帖子,发现好多人在讨论这个问题,然后我又google了一下,发现微软网站上也有类似的内容. 现在我就把原因和解决办法写出来. 原因: 由于Asp.net程序是默认配置,所以Web.Config文件中关于Session的设定如下: <sessio

java defunct产生的原因和解决办法

解决 java defunct产生的原因和解决办法: 在很多时候,我们启动JAVA进程后,如果退出这个JAVA进程,在系统进程中仍然可以看到这个进程.这种情况一般出现在UNIX/LINUX系统,对于WIN平台出现情况较少. 这个进程在UNIX平台上,你即使kill进程号也不能杀掉它,但它仍然占用系统资源,成了真正的"僵尸". 产生的原因:以前我们下载JDK时,可以下载到JDK的SRC然后自己编译,现在的官方网站上已经找不到可以自己编译的JDK包,下载回来的JDK都是释放包,我们可以想象

dubbo filter 使用-调用Dubbo服务报以下错误,原因和解决办法

问题描述 调用Dubbo服务报以下错误,原因和解决办法 用mvn 创建了一个子项目jar dubbo filter,在生产者中无法调用,报 No such extension xxx for filter/com.alibaba.dubbo.rpc.Filter

影响B2B网站排名的三大原因及解决办法

B2B网站目前虽然有很多,但却有很多的网站排名不理想,原因是多种多样的,下面A5站长网SEO诊断团队(http://seo.admin5.com/topic-seo.html),就以中国动漫创意产业交易网为例与大家浅谈以下垂直B2B网站排名的三大常见原因: meta标签里Keywords数量过多   关键词密度过低,大多为O   友情链接中很多个无本站链接,其中有部分网站虽有本站链接但却加了NOFOLLOW属性,其中还有被百度拔毛的网站.   解决办法:每天去掉一到两个这些没有我们链接的网站及加

总结网站关键词排名下降的原因及解决办法

看到这个标题,大家肯定会看到之前有人总结过原因,但是小鹤觉得不够完全,而且没有说明解决办法,所以今天小鹤花点时间,在别人的基础上补充一些没有的原因,并把相应的解决办法分享出来.   1.搜索引擎自身的原因 搜索引擎的算法时常都会有细微的改变,这样或多或少的会影响到网站排名,这种情况有的时候过几天就恢复了,有的一直不会恢复. 解决办法:对于这种原因,你先要分析下原因,并且到大型的seo论坛或者QQ群去了解下搜索引擎的算法变化,当然,你了解到的信息只能作为参考,然后自己根据情况分析分析,并尝试的测试

电脑没有声音的原因及解决办法

  电脑没有声音的原因及解决办法          一般处理电脑故障我们都是先软件后硬件的.如果您的电脑没有声音请尝试以下解决办法,一般是可以解决的. 方法一:检查声音控制图标 如果电脑没声音,请先检查电脑桌面右下脚任务栏里是否有声音控制图标,如下图: 如上图,如果有这个图标说明声卡安装在电脑上是没有问题的,然后用鼠标左键单击这个声音控制图标,会出现声音音量调节开关控制窗口,查看是不是将音量调节到最低,是不是勾选了静音,以前帮不少新手朋友处理电脑没声音的时候很多都是要么将声音调到了最低,要么是勾

电脑打开网页慢的原因及解决办法

  电脑打开网页慢的原因及解决办法           ⒈首先检查网络速度 很多网友误以为以前网速很快,现在网页还是很快,除非是网线是自己单独拉,独显网络.不然这种想法往往只是个人的一厢情愿,就目前而言多数朋友依然选择的是小区宽带或者与他人共用网线,对于这部分朋友如果打开网页很慢,不妨先测试下网速,一般网速再1M以上,打开网页一般不会出现很慢. 关于如何测试网速,建议大家阅读下:如何测试网速 测试网速的N种方法一文. 另外如果电脑配置过度,即便网速再好,也同样会出现打开网页很慢的情况,因此假如网