關於redo log 檔案中記錄的內容問題 ?

tolywang發表於2009-04-01
關於回滾段問題, 讀了回滾段探究文章之後比較瞭解sql 執行時在不同操作下回滾段中儲存的內容 。
    不過現在對redo log 在不同操作下儲存的內容不瞭解 。以下幾種情況下redo log 中儲存的資料塊應該包含哪些內容呢 ?

1.  insert into tab1(aa,bb,cc)   values(1,2,'3')  ;  tab1表中原有資料10萬筆, 插入語句在執行後,dirty data 在寫入disk 前先透過lgwr將變化redo buffer 寫入redo log , 那麼這種情況下寫入redo log 的內容僅僅是insert 到表tab1 中那一筆資料及相應的sql 操作 。

2. update tab2  set  bb='red'  where   aa<=200 ;  tab2 表中在sql 操作時的記錄總數是1400 比, 被update 的記錄數為 150 筆 ,那麼在redo log 中記錄這比交易的內容是被更新的150筆記錄及相應的sql 操作 , 還是僅僅記錄被更新的bb 欄位及作為條件的aa 欄位的及sql 操作, 還是其他 ?

3. delete tab2 where aa<=18 ;  那麼redo log 中會記錄sql操作及被刪除的資料 ?  

4. redo log 以binary 方式儲存資訊,那麼 執行delete tab2 where aa<=18  , 會刪除大約10萬筆記錄,大小大概60M ,  用一個clear 的redo log 來記錄這個transaction ,假設redo log file 大小100M ,那麼redo log 中記錄的內容大小和刪除的記錄大小是否差不多大小?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-592485/,如需轉載,請註明出處,否則將追究法律責任。

相關文章