成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號(hào)

如何防止插入刪除表造成的數(shù)據(jù)庫死鎖
2010-03-05   網(wǎng)絡(luò)

在數(shù)據(jù)庫中經(jīng)常會(huì)遇到這樣的 情況:一個(gè)主表A,一個(gè)子表B,B表中包含有A表的主鍵作為外鍵。當(dāng)要插入數(shù)據(jù)的時(shí)候,我們會(huì)先插入A表,然后獲得A表的Identity,再插入B表。 如果要進(jìn)行刪除操作,那么就先刪除子表B,然后再刪除主表A。在程序設(shè)計(jì)中,對(duì)兩個(gè)表的操作是在一個(gè)事務(wù)之中完成的。

  當(dāng)系統(tǒng)使用頻繁就會(huì)出現(xiàn)插入操作和刪除操作同時(shí)進(jìn)行的情況。這個(gè)時(shí)候插入事務(wù)會(huì)先將主表A放置獨(dú)占鎖,然后去訪問子表B,而同時(shí)刪除事務(wù)會(huì)對(duì)子 表B放置獨(dú)占鎖,然后去訪問主表A。插入事務(wù)會(huì)一直獨(dú)占著A表,等待訪問B表,刪除事務(wù)也一直獨(dú)占著B表等待訪問A表,于是兩個(gè)事務(wù)相互獨(dú)占一個(gè)表,等待 對(duì)方釋放資源,這樣就造成了死鎖。

  遇到這種情況我聽說了三種做法:

  1 取消AB兩個(gè)表之間的外鍵關(guān)系,這樣就可以在刪除數(shù)據(jù)的時(shí)候就可以先刪除主表A,然后刪除子表B,讓對(duì)這兩個(gè)表操作的事務(wù)訪問順序一致。

  2 刪除A表數(shù)據(jù)之前,先使用一個(gè)事務(wù)將B表中相關(guān)外鍵指向另外A表中的另外一個(gè)數(shù)據(jù)(比如在A表中專門建一行數(shù)據(jù),主鍵設(shè)置為0,永遠(yuǎn)不會(huì)對(duì)這行數(shù)據(jù)執(zhí)行刪 除操作),這樣就消除了要被刪除的數(shù)據(jù)在AB兩個(gè)表中的關(guān)系。然后就可以使用刪除事務(wù),先刪除A表中的數(shù)據(jù),再刪除B表中的數(shù)據(jù),以達(dá)到和插入事務(wù)表訪問 一致,避免死鎖。

  3 在外鍵關(guān)系中,將“刪除規(guī)則”設(shè)置為“層疊”,這樣刪除事務(wù)只需要直接去刪除主表A,而不需要對(duì)子表B進(jìn)行操作。因?yàn)閯h除規(guī)則設(shè)置為層疊以后,刪除主表中 的數(shù)據(jù),子表中所有外鍵關(guān)聯(lián)的數(shù)據(jù)也同時(shí)刪除了。

熱詞搜索:

上一篇:如何建立綠色的磁盤到磁盤(D2D)備份
下一篇:部署iSCSI SAN中小企業(yè)6大注意事項(xiàng)

分享到: 收藏
主站蜘蛛池模板: 视频素材 网站| 欠条怎么写才具有法律效力| 花宵道中1| 摘抄现代诗| 德鲁| 教育在线教育平台直播| 工会基层组织选举工作条例| 老江湖| 最新好看电影| 张柏芝惊艳照片| 铁血使命演员表全部| 第一介绍人与第二介绍人意见| 叫床录音| 抖音视频怎么下载| 李采潭全部作品| 秀场视频高清完整版| 黑帮大佬和我的第365天| 人流后饮食| 免费播放高清完整版电影| 电影双面情人| 忘忧草电影| 网页抖音| 黑玫瑰演员表| doors2怪物图鉴| trainspotting| 卖梦的两人| 掐脖子自制短视频| xxxxxxcom| 泰星mike| 胃疼呕吐视频实拍| 风间由美电影影片| xiazai| 布莱克·莱弗利身高体重| 天与地越南战争在线观看免费 | 王茜华泳装照片高清| 40集电视连续剧人生之路| 舞法天女之绚彩归来演员表| 悦来换电| 凤凰卫视节目表| 视频 | vk| 甘婷婷照片|