亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

達夢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

英德市| 怀柔区| 翼城县| 谷城县| 闻喜县| 隆化县| 柞水县| 乌鲁木齐县| 长海县| 伊通| 仪陇县| 雷山县| 合川市| 三原县| 奉节县| 惠安县| 青浦区| 青河县| 德保县| 滨州市| 历史| 吐鲁番市| 图们市| 沙田区| 五常市| 剑河县| 南康市| 贵州省| 吴江市| 双桥区| 萨迦县| 冀州市| 石城县| 沂南县| 凤凰县| 灵宝市| 宁陵县| 菏泽市| 商水县| 瑞金市| 邢台市|