Rollback Segments是在你數據庫中的一些存儲空間,它用來臨時的保存當數據庫數據發生改變時的先前值,
Rollback Segment主要有兩個目的:
1. 如果因為某種原因或者其他用用戶想要通過ROLLBACK聲明來取消一個人的數據操作,數據就會復原到之前為改變時的值。這種情況只在transaction的過程中有效,如果用戶執行了COMMIT命令,那么ROLLBACK SEGMENT里面的值就會標識為失效的,數據改變就將永久化。
2. 另一個目的是當有并發的session訪問了一個數據值改變但事務還沒有提交的表。如果一個SELECT語句開始讀取一個表同時一個事務也在修改這個表的值,那么修改前的值就會保存到rollback segment里面,SELECT語句也是從ROLLBACK SEGMENT里面讀取表的值。
what the hell is going on ??!!
