1. 打開數據庫 已提交讀快照 選項
2. 數據庫 已提交讀快照 模式下的測試
a) 測試表 Test
b) 開啟事務1,更新數據C2 = '200'(未提交)
BEGIN TRAN UPDATE Test SET C2 = '200' WHERE C1 = 'A'-- COMMIT
c) 查詢數據(查詢沒有被阻塞,C2 = '100')
SELECT * FROM Test
d)開啟事務2,更新數據C2 = '300'(未提交),更新操作被阻塞(等待事務1提交)
BEGIN TRAN UPDATE Test SET C2 = '300' WHERE C1 = 'A'-- COMMIT
e) 提交事務1,再次查詢數據,數據已經被更新成 '200',事務2阻塞已經解除
SELECT * FROM Test
f) 提交事務2,查詢數據,數據已經被更新成 '300'
SELECT * FROM Test
3. 已提交讀模式 vs已提交讀快照 區別:
a) 如果有事務未提交,讀操作會被阻塞
4. 會話級別設置數據庫隔離級別
a)原來的隔離級別是已提交讀快照,查詢不會被阻塞
b) 會話調整隔離級別(可重復讀),查詢被阻塞
新聞熱點
疑難解答