事務(wù)隔離級別:一個事務(wù)對數(shù)據(jù)庫的修改與并行的另一個事務(wù)的隔離程度
:事務(wù)T1讀取一條指定where條件的語句,返回結(jié)果集。此時事務(wù)T2插入一行新記錄,恰好滿足T1的where條件。然后T1使用相同的條件再次查詢,結(jié)果集中可以看到T2插入的記錄,這條新紀錄就是幻想。
:事務(wù)T1讀取一行記錄,緊接著事務(wù)T2修改了T1剛剛讀取的記錄,然后T1再次查詢,發(fā)現(xiàn)與第一次讀取的記錄不同,這稱為不可重復(fù)讀。
:事務(wù)T1更新了一行記錄,還未提交所做的修改,這個T2讀取了更新后的數(shù)據(jù),然后T1執(zhí)行回滾操作,取消剛才的修改,所以T2所讀取的行就無效,也就是臟數(shù)據(jù)。
一個會話可以讀取其他事務(wù)未提交的更新結(jié)果,如果這個事務(wù)最后以回滾結(jié)束,這時的讀取結(jié)果就可能是不正確的,所以多數(shù)的數(shù)據(jù)庫都不會運用這種隔離級別。
二、oracle中的隔離級別及實現(xiàn)機制:
,,這也是Oracle事務(wù)處理的一個優(yōu)勢所在。
Serializable隔離級別(也稱為事務(wù)級別的隔離),事務(wù)中的讀取操作只能讀取這個事務(wù)開始之前已經(jīng)提交的數(shù)據(jù)結(jié)果。如果在讀取時,其他事務(wù)正在對記錄執(zhí)行修改,則Oracle就會在回滾段或撤銷段中去尋找對應(yīng)的原來未經(jīng)修改的記錄(而且是在讀取操作所在的事務(wù)開始之前存放于回滾段或撤銷段的記錄),這時讀取操作也不會因為相應(yīng)記錄被更新而等待。