m@rc-lenzin

Wenn etwas schief geht, dann freu dich. Das sind die Geschichten die dir in Erinnerung bleiben werden

oracle – Index move to tablespace

Indexe werden gerade auf Testsystemen gerne eine Tablespace-Clause erstellt und landen nicht selten einfach nur im Default-Tablespace. Damit diese später oder beim erstellen gleich im richten Tablespace landen, kann folgendes Skript verwendet werden:

-- Index verschieben:
alter index <OWNER>.<IDX_NAME> rebuild tablespace <OWNER>_INDEXES;

-- Tablespace-Clause beim erstellen:
create index <IDX_NAME> tablespace <OWNER>_INDEXES;

-- LOB-Segment verschieben:
select  'alter table ' || t.owner || '.' || t.table_name || ' move lob ('||column_name||') store as '||index_name||' (tablespace USERS01);'
  from  dba_lobs l, 
        dba_tables t
  where l.owner      = t.owner
  and   l.table_name = t.table_name
  and   l.SEGMENT_NAME in ( select  segment_name
                              from  dba_segments
                              where segment_type like 'LOBSEGMENT'
                              and   tablespace_name in ('VRS_AM_INDEXES','USERS'))
  order by  t.owner, 
            t.table_name;

Weiter Beitrag

Zurück Beitrag

© 2025 m@rc-lenzin

Thema von Anders Norén