中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

達夢8 死鎖模擬

發布時間:2020-08-10 22:15:33 來源:ITPUB博客 閱讀:238 作者:LEVEL7 欄目:數據庫

1.創建兩個簡單的表t1_deadlock和t2_deadlock,每個表中僅僅包含一個字段a

SQL> create table t1_deadlock (a int);

操作已執行
已用時間: 6.906(毫秒). 執行號:23.
SQL> create table t2_deadlock (a int);
操作已執行
已用時間: 3.168(毫秒). 執行號:24.

2.每張表中僅初始化一條數據

SQL> create table t2_deadlock (a int);

操作已執行
已用時間: 3.168(毫秒). 執行號:24.
SQL> insert into t1_deadlock values (1);
影響行數 1
已用時間: 0.566(毫秒). 執行號:25.
SQL> insert into t2_deadlock values (2);
影響行數 1
已用時間: 0.803(毫秒). 執行號:26.
SQL> commit;
操作已執行
已用時間: 1.057(毫秒). 執行號:27.

3.在第一個會話session1中更新表t1_deadlock中的記錄“1”為“1000”,不進行提交

SQL> update t1_deadlock set a = 1000 where a = 1;

影響行數 1
已用時間: 1.608(毫秒). 執行號:28.

4.在第二個會話session2中更新表t2_deadlock中的記錄“2”為“2000”,不進行提交

SQL> update t2_deadlock set a = 2000 where a = 2;

影響行數 1
已用時間: 3.345(毫秒). 執行號:29.

5.此時,沒有任何問題發生。OK,現在注意一下下面的現象,我們再回到會話session1中,更新t2_deadlock的記錄

SQL> update t2_deadlock set a = 2000 where a = 2;

這里出現了“鎖等待”(“阻塞”)的現象,原因很簡單,因為在session2中已經對這條數據執行過這個操作,在session2中已經對該行加了行級鎖。

注意,這里是“鎖等待”,不是“死鎖”,注意這兩個概念的區別!

6.我們關注的“死鎖”馬上就要隆重出場了:在會話session2中,更新t1_deadlock的記錄

SQL> update t1_deadlock set a = 1000 where a = 1;

update t1_deadlock set a = 1000 where a = 1;
[-6403]:死鎖.
已用時間: 310.980(毫秒). 執行號:0.

7.以上種種現象說明什么?

說明: DM對于“死鎖”是會做自動處理的,而不是不聞不問。

8.總結

死鎖與阻塞的不同之處在于死鎖包括兩個或者多個已阻塞事務,它們之間形成了等待環,每個都等待其他事務釋放鎖。例如事務1給表T1上了排他鎖,第二個事務給表T2上了排他鎖,此時事務1請求T2的排他鎖,就會處于等待狀態,被阻塞。若此時T2再請求表T1的排他鎖,則T2也處于阻塞狀態。此時這兩個事務發生死鎖,DM數據庫會選擇犧牲掉其中一個事務。

參考:《DM8系統管理員手冊》19.8 鎖等待與死鎖檢測

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武威市| 化德县| 两当县| 平山县| 阳曲县| 松阳县| 蒙自县| 昆山市| 阳城县| 临湘市| 财经| 博罗县| 宝坻区| 延津县| 左贡县| 四平市| 县级市| 南靖县| 临高县| 延安市| 建湖县| 鄂尔多斯市| 溆浦县| 达日县| 措勤县| 临潭县| 四会市| 武夷山市| 泉州市| 金湖县| 黎城县| 元阳县| 江陵县| 博客| 晴隆县| 上犹县| 滦平县| 三穗县| 颍上县| 随州市| 湄潭县|