文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络网络编程MSSQLSQL Server死锁产生的原因及解决办法
精品推荐
特别推荐
·SQL SERVER 2005中的同步复制技术
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束SQL注入隐患3招
·掌握SQL Server数据库的实用技巧
·SQL的简单查询
·快速解决SQL Server“安全疑难”相关问题
·SQL Server 2005:你应知道的13件事
·实例解析:减少SQL日志大小的三个好方法
·使用SQL2000将现有代码作为Web服务提供
热点TOP10
·“木马”查杀法和清除法
·巴塞尔新资本协议概述
·SQL2000 数据库安装说明
·SQL server 2005安装问题汇总
·SQL Server 2005 Express Edition安装步骤详解
·安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
·SQL Server企业管理器和查询分析器简介
·SQL SERVER 2005中的同步复制技术
·还原精灵实战
·常用SQL语句词典

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

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


所有死锁产生的最深层的原因是资源况争,本文举例说明这个问题。

现象一

一个用户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

(出处:清风学院






上一篇:判断与主表关联的外键表是否有数据引用再删除

下一篇:MySQL代码如何在 Windows环境下编译
相关文章:
·不用重装XP系统就可以解决全部故障
·改变一生的100句至理名言
·XP系统运行慢?小编自用7招解决
·解决与HTTP 500 – 内部服务器错误错误信息有关的问题
·0X000000该内存不能为read的解决方法
·笔记本电脑无线上网解决方案大比拼
·不可错过:激励人生的五句话
·解决电脑死机故障攻略
·世人谨记:一生的忠告
·电脑不启动故障诊解决办法
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot