What is Highwatermark?

Answer Posted / p.rajasekar

High-water mark is an indicator or pointer up to which
table or index has ever contain data. Let us illustrate
this statement as Suppose we create an empty table , the
high-water mark would be at the beginning of the table
segment.
After inserting data in the table segment , the HWM moves
and point the position up to which the data is in the
segment.By inserting more data in the table segment, HWM
moves further to point the position up to which the data
is in the segment.
------- DATA-----------------
Un-Used Blocks





Now let us delete the data and see the pointer of HWM

DATA
------- Empty Blocks Un-Used Blocks



Full Table
Scan

As you seen above by deleting the data , HWM does
not move. The main disadvantage of this is that oracle
always read the blocks up to high water mark in case of
full table scan . You may have ever notice that doing a
count(*) on empty table , takes time to show you 0 rows.
The reason for delay is setting of HWM at higher position.

Now the question arises in front of us , how we set the
high-water mark at lower position ?
The only way to set the HWM is to truncate a table.

Let us see how truncate set the HWM.

No data in the segment



HWM is reset now , after truncating data.

Table where lots of deletion or insertion takes place ,
probably has High HWM. If the HWM is high , it is better
to rebuild table segment for performance sake.

Is This Answer Correct ?    5 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is sqlcontext?

714


Can we perform dml in function?

796


what is online transaction processing (oltp)? : Sql dba

713


Explain 3 basic parts of a trigger.

1037


How do I view an execution plan in sql?

711






how to show all tables with 'mysql'? : Sql dba

816


What is trigger and types?

759


What is the difference between local variables and global variables?

800


What is the importance of sqlcode and sqlerrm?

1058


How many sql databases can you have on one server?

758


How to check if a column is nullable before setting to nullable?

775


Is left join and outer join same?

765


What is the difference between an inner and outer join?

729


Which certification is best for sql?

725


What do you understand by case manipulation functions?

733