国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

深入分析MSSQL數據庫中事務隔離級別和鎖機制

2020-07-25 12:55:45
字體:
來源:轉載
供稿:網友

鎖機制
NOLOCK和READPAST的區別。

1.       開啟一個事務執行插入數據的操作。

BEGIN TRAN tINSERT INTO CustomerSELECT 'a','a'

2.       執行一條查詢語句。

SELECT * FROM Customer WITH (NOLOCK)

結果中顯示”a”和”a”。當1中事務回滾后,那么a將成為臟數據。(注:1中的事務未提交) 。NOLOCK表明沒有對數據表添加共享鎖以阻止其它事務對數據表數據的修改。

SELECT * FROM Customer

這條語句將一直死鎖,直到排他鎖解除或者鎖超時為止。(注:設置鎖超時SET LOCK_TIMEOUT 1800)

SELECT * FROM Customer WITH (READPAST)

這條語句將顯示a未提交前的狀態,但不鎖定整個表。這個提示指明數據庫引擎返回結果時忽略加鎖的行或數據頁。

3.       執行一條插入語句。

BEGIN TRAN tINSERT INTO CustomerSELECT 'b','b'COMMIT TRAN t

這個時候,即使步驟1的事務回滾,那么a這條數據將丟失,而b繼續插入數據庫中。

NOLOCK

1. 執行如下語句。

BEGIN TRAN tttSELECT * FROM Customer WITH (NOLOCK)WAITFOR delay '00:00:20'COMMIT TRAN ttt

注:NOLOCK不加任何鎖,可以增刪查改而不鎖定。

INSERT INTO Customer SELECT 'a','b' 

主站蜘蛛池模板:
乡宁县|
昌都县|
张家川|
西盟|
安义县|
宣武区|
霍林郭勒市|
宣武区|
闵行区|
安乡县|
灵川县|
双桥区|
庄浪县|
宾川县|
临高县|
濮阳县|
三门峡市|
潼南县|
和龙市|
赤城县|
马关县|
金山区|
九江县|
黄冈市|
丰顺县|
民丰县|
阿拉尔市|
祁阳县|
馆陶县|
西城区|
耒阳市|
西华县|
塔河县|
静海县|
泸西县|
辽阳县|
湖州市|
淳化县|
龙胜|
辽宁省|
万荣县|