文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库如何防止插入删除表造成的数据库死锁
精品推荐
特别推荐
·SQL数据库完全使用手册
·进阶:精妙SQL语句介绍
·sql删除记录
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
热点TOP10
·学习SQL语句之SQL语句大全
·SQL数据库完全使用手册
·玩转Windows桌面图标
·精妙SQL语句收集
·Transact SQL 常用语句以及函数
·一个简单的酒店系统的数据库设计
·sqlldr使用小结
·使用DatabaseMetaDate获取数据库信息
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·Delphi程序执行时实时生成报表
·图片保存到数据库和从数据库读取图片并显示(c#)
·VB.NET的数据库基础编程(1)
·SQL查询语句精华使用简要
·如何实现将vsflexgrid中修改的数据反馈到数据库中
·SQL优化34条
·SQL 新增/修改 表字段列的类型等
·还原数据库的经典做法
·通过分析SQL语句的执行计划优化SQL(二)
·通过Remoting service上传文件
·sql删除记录

如何防止插入删除表造成的数据库死锁

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


   在数据库中经常会遇到这样的情况:一个主表A,一个子表B,B表中包含有A表的主键作为外键。当要插入数据的时候,我们会先插入A表,然后获得A表的Identity,再插入B表。如果要进行删除操作,那么就先删除子表B,然后再删除主表A。在程序设计中,对两个表的操作是在一个事务之中完成的。
当系统使用频繁就会出现插入操作和删除操作同时进行的情况。这个时候插入事务会先将主表A放置独占锁,然后去访问子表B,而同时删除事务会对子表B放置独占锁,然后去访问主表A。插入事务会一直独占着A表,等待访问B表,删除事务也一直独占着B表等待访问A表,于是两个事务相互独占一个表,等待对方释放资源,这样就造成了死锁。
遇到这种情况我听说了三种做法:

1 取消AB两个表之间的外键关系,这样就可以在删除数据的时候就可以先删除主表A,然后删除子表B,让对这两个表操作的事务访问顺序一致。

2 删除A表数据之前,先使用一个事务将B表中相关外键指向另外A表中的另外一个数据(比如在A表中专门建一行数据,主键设置为0,永远不会对这行数据执行删除操作),这样就消除了要被删除的数据在AB两个表中的关系。然后就可以使用删除事务,先删除A表中的数据,再删除B表中的数据,以达到和插入事务表访问一致,避免死锁。

3 在外键关系中,将“删除规则”设置为“层叠”,这样删除事务只需要直接去删除主表A,而不需要对子表B进行操作。因为删除规则设置为层叠以后,删除主表中的数据,子表中所有外键关联的数据也同时删除了。

以上三个解决办法都是同事给出的建议,我也不知道到底该使用什么办法才好。
不知道对于这种情况要防止死锁大家还有没有什么其他好办法?

http://www.cnblogs.com/studyzy/archive/2007/06/11/779811.html

(出处:清风网络学院






上一篇:手把手教你如何扩展GridView之个性分页

下一篇:C#开发和使用中的23个技巧

如何防止插入删除表造成的数据库死锁 相关文章:
·教你学习如何破解XP登陆密码
·教你如何复制别人的QQ空间
·“黑客”教你如何远程控制计算机
·将系统装到U盘中 如何自制XP@USB启动盘
·手机里舍不得删除的48条搞笑短信(保证你没看过)
·如何显示输入法图标(输入法图标消失)
·如何建立一个网站?规划、设计、目的、原则、宣传
·如何在QQ空间加入播放器代码
·如何查出QQ好友精确地理位置
·教你如何制作QQ空间FLASH导航条
如何防止插入删除表造成的数据库死锁 相关软件:
·如何安装双系统
·如何加固Windows XP 主机安全
·如何评估您的商机
·如何开公司
·ACCESS数据库教程 北京大学的ACCESS教程
·零起点教你如何破解软件和制作注册机 and 视频+程序
·爆出网站数据库路径
·逐步精通数据库 sql server 视频教程
·SQL/MYSQL/数据库教程专栏
·如何安装XP系统

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