RE: "Deallocate Unused" not releasing space above HWM

  • From: "Tanel Poder" <tanel.poder.003@xxxxxxx>
  • To: "" <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 17 Mar 2004 22:40:40 +0200

Hi Everyone,

sorry about replying to old messages, I have a backlog of 1500 messages, but 
some should be answered :)

> Hi,I disagree with the definition given here.  
> Space below the HWM has been used to hold data
> while space above the HWM has been allocated
> to the object but has never been used.  

Btw, there is one special case when data blocks above HWM can be used - it's 
the direct path insert. When doing an insert +append for example, the data 
blocks above HWM are newed and filled with data, but hwm stays in it's old 
position until the direct path insert has been committed. 

This allows other sessions to make read consistent queries since they only scan 
up to HWM in case of full table scan. Index key entries for direct path inserts 
don't cause consistency issues, since they go through the conventional array 
interface and undo mechanisms anyway. 

The table itself is locked in exclusive mode by the session making direct path 
insert, in order to prevent any other session inserting above HWM data 
accidentially. So, during commit, the HWM is incremented and locks are removed 
on the table, and all data becomes visible.

Tanel.

Other related posts: