Use dbms_space.unused_space to find unused space, whose arguments are: segment_owner IN VARCHAR2, segment_name IN VARCHAR2, segment_type IN VARCHAR2, total_blocks OUT NUMBER, total_bytes OUT NUMBER, unused_blocks OUT NUMBER, unused_bytes OUT NUMBER, last_used_extent_file_id OUT NUMBER, last_used_extent_block_id OUT NUMBER, last_used_block OUT NUMBER, partition_name IN VARCHAR2 DEFAULT NULL); SQL> var tb number SQL> var tby number SQL> var ub number SQL> var uby number SQL> var l1 number SQL> var l2 number SQL> var l3 number SQL> exec dbms_space.unused_space('R_STAGE1','EB_GL_TRANSACTIONS','TABLE',:tb,:tby,:ub,:uby,:l1,:l2,:l3) PL/SQL procedure successfully completed. SQL> print TB ---------- 1721600 TBY ---------- 2.8207E+10 UB ---------- 0 UBY ---------- 0 L1 ---------- 38 L2 ---------- 129925 L3 ---------- 640 So in this case, HMW is in the last block (ub or unused blocks and uby or unused bytes are 0). To find where HMW is located physically, SQL> select header_file, header_block from dba_segments where segment_name = 'EB_GL_TRANSACTIONS'; HEADER_FILE HEADER_BLOCK ----------- ------------ 26 3205 SQL> alter system dump datafile 26 block 3205; System altered. In the dump file, we see Extent Control Header ----------------------------------------------------------------- Extent Header:: spare1: 0 spare2: 0 #extents: 2690 #blocks: 1721598 last map 0x0ac0b405 #maps: 1 offset: 8224 Highwater:: 0x0981fe05 ext#: 2689 blk#: 640 ext size: 640 #blocks in seg. hdr's freelists: 1406670 #blocks below: 1721598 mapblk 0x0ac0b405 offset: 1672 Unlocked Map Header:: next 0x0ac0b405 #extents: 1017 obj#: 38223 flag: 0x40000000 Extent Map ----------------------------------------------------------------- 0x06800c86 length: 639 0x08c00005 length: 640 0x09000005 length: 640 0x09400005 length: 640 ... 0x0a40b405 length: 640 0x0a80b405 length: 640 nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 344324 SEG LST:: flg: USED lhd: 0x0bc1016a ltl: 0x0981fe04 End dump data blocks tsn: 28 file#: 26 minblk 3205 maxblk 3205 The address of HMW is 0x0981fe05, or 159514117. Find the location: SQL> var a number SQL> exec :a := dbms_utility.data_block_address_file(159514117) PL/SQL procedure successfully completed. SQL> print a A ---------- 38 SQL> exec :a := dbms_utility.data_block_address_block(159514117) PL/SQL procedure successfully completed. SQL> print a A ---------- 130565 SQL> select * from dba_extents where file_id = 38 and segment_name = 'EB_GL_TRANSACTIONS' order by extent_id; OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE ------------------------------ --------------------------------------------------------------------------------- ------------------------------ ------------------ TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO ------------------------------ ---------- ---------- ---------- ---------- ---------- ------------ R_STAGE1 EB_GL_TRANSACTIONS TABLE R_STAGE_DATA 4 38 5 10485760 640 38 ... R_STAGE1 EB_GL_TRANSACTIONS TABLE R_STAGE_DATA 2689 38 129925 10485760 640 38 The last block is 129925 + 640 = 130565, matching HWM.