事務與事務隔離級別


oracle事務
事務含義:組成單個邏輯單元的一系列操作。
事務特征:
第一、原子性,即不可分割性;
第二、一致性,保證數據更新前后與業務的一致性;
第三、隔離性,多個事務不相影響;
第四、持久性,事務提交后數據將永久存儲雜數據庫。

隔離級別

1.未提交讀(read uncommitted):會出現臟讀、不可重復讀和幻讀。臟讀的設計只是為了提供非阻塞讀,但是對於oracle來說,默認就提供非阻塞讀,

                                             即查詢不會受到任何增刪改操作的影像,因為oracle提供了undo來存放更新前的數據。

2.提交讀(read committed):會出現不可重復讀和幻讀。oracle的默認事務隔離級別。

3.重復讀(repeatable read):會出現幻讀。

4.串行化(serializable):隔離級別最高,不允許出現臟讀、不可重復讀和幻讀。即一個事務執行結束了另一個事務才能執行。當然並發性也就最差。

除了這四種,oracle還提供read only隔離級別,即只支持讀,在該級別中,該事務只能看到事務開始那一刻提交的修改。

臟讀、不可重復讀、幻讀含義

臟讀:一個事務可以讀物另一個事務未提交的數據。

不可重復讀:在一個事務中不同時間段查詢出現不同的結果,可能被更新可能被刪除。

幻讀:在一個事務中不同時間段查詢,記錄數不同。與不可重復讀的區別是:在幻讀中,已經讀取的數據不會改變,只是與以前相比,會有更多的數據滿足查詢條件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM