臟讀:當(dāng)一個(gè)事務(wù)開(kāi)始更新數(shù)據(jù),但是這個(gè)事務(wù)并沒(méi)有完全提交,這個(gè)時(shí)候第二個(gè)事務(wù)開(kāi)始讀取數(shù)據(jù),把第一個(gè)事務(wù)所更改的數(shù)據(jù)讀了出來(lái),
第二個(gè)事務(wù)讀取的數(shù)據(jù)時(shí)臨時(shí)的,因?yàn)橛锌赡艿谝粋€(gè)事務(wù)最終有可能做回滾操作
不可重復(fù)讀:在一個(gè)事務(wù)中多次讀取某一行數(shù)據(jù),可能會(huì)得到不同的結(jié)果
幻讀:在一個(gè)事務(wù)中,我們讀取數(shù)據(jù),發(fā)現(xiàn)沒(méi)有特定的行,第一個(gè)事務(wù)還沒(méi)結(jié)束,這個(gè)時(shí)候第二個(gè)事務(wù)插入了該行數(shù)據(jù),
然后在第一個(gè)事務(wù)再次讀取時(shí),該行數(shù)據(jù)突然出現(xiàn)了
SQLServer數(shù)據(jù)庫(kù)支持一下隔離級(jí)別:未提交讀、已提交讀、可重復(fù)讀、快照、可序列化。
隔離級(jí)別 | 是否申請(qǐng)共享鎖 | 何時(shí)釋放 | 有無(wú)范圍鎖 |
未提交讀 | 不申請(qǐng) | -- | 無(wú) |
已提交讀 | 申請(qǐng) | 當(dāng)前語(yǔ)句執(zhí)行完 | 無(wú) |
可重復(fù)讀 | 申請(qǐng) | 事務(wù)提交時(shí) | 無(wú) |
可序列化 | 申請(qǐng) | 事務(wù)提交時(shí) | 有 |
不同隔離級(jí)別的并發(fā)副作用:
隔離級(jí)別 | 臟讀 | 不可重復(fù)讀 | 幻讀 |
未提交讀 | 是 | 是 | 是 |
已提交讀 | 否 | 是 | 是 |
可重復(fù)讀 | 否 | 否 | 是 |
快照 | 否 | 否 | 否 |
可序列化 | 否 | 否 | 否 |
新聞熱點(diǎn)
疑難解答
圖片精選