原文地址:Oracle Internal之Block Cleanout 1    
    作者:顾问 
   
 
   
    为什么会有Block Cleanouts? Oracle server在执行一个交易(transaction)时会保存交易数据在数据块(data block)本身,并且一个交易有可能修改大量的数据块,因此交易需要清理这些在数据块自己上的交易数据当一个交易完成commit。 
    
那些东西需要cleaned out?
   
     1. Row Locks 
    
   
     2. ITL Entry: 
    
   
      
      
      
      
     - Commit flags 
    
   
      
      
      
      
     - Free Space Credit/Commit SCN 
    
 
    
Deferred Block Cleanout:
   
      
     A transaction commit was a simple update to the relevant undo segment header. 
    
   
      
     The data block cleanout was left to the next reader of the modified block 
    
Fast Block Cleanout: This is the default action.
   
      
     Modified blocks are 'memorized' by a transaction. On transaction commit, cleanout is attempted 
    
   
      
     on those blocks in memory(up to a limit 20 blocks). For any blocks above this threshold, or 
    
   
      
     aged out of memory, or currently pinned by another process deferred block cleanout will be 
    
   
      
     still used. 
    
 
                           
 
  那些东西需要cleaned out?
Deferred Block Cleanout:
Fast Block Cleanout: This is the default action.