Dirty notes to oracle file resizing.
Just gona post my query I just used now. It’s incomplet an dirty now.
If somebody has better version of it, please poste it.
The query just work for index tablespace (also with partitioned and subpartitioned indexes)
<code>select ‘alter ‘||decode(segment_type,’INDEX’,'INDEX’,'INDEX PARTITION’,'INDEX’,'INDEX SUBPARTITION’,'INDEX’)||’ ‘||
owner||'.'||segment_name||' rebuild '||
decode(segment_type,'INDEX','','INDEX PARTITION','partition','INDEX SUBPARTITION','subpartition')||' '||partition_name||';' cmd
from rim_dba_extents
where (file_id,block_id) in (select file_id,block_id from
(select file_id,block_id from rim_dba_extents sde3
where file_id in (select file_id
from dba_data_files
where tablespace_name like 'Tablespace_name%'
and sde3.block_id>(select min(BLOCK_ID)+1 from dba_free_space where file_id=sde3.file_id)
)
order by block_id)
where rownum < 100)
</code>
btw: I use a copy of dba_extents becuase in 10.2.0.4 is bug which makes dba_extents extremly slow.
create table rim_dba_extents as select * from dba_extents; drop table rim_dba_extents;