REBUILD DOS INDEXES
Olá,
Neste artigo vamos procurar entender um pouco mais de como fazer REBUILD nos INDEX. Vamos identificar ondes os INDEX podem está armazenados e depois vamos fazer o REBUILD para colocarmos no lugar correto que é a TABLESPACE de INDEX.
OBS: Nos exemplos abaixo nos scripts, vou usar o usuário HR.
1º Vamos setar as variaveis (no script que vamos utilizar, vamos trabalhar com os campos: linha, página e segment_name. Por isso vamos precisar setar essas váriaveis)
SET LINESIZE 200
SET PAGES 100
COL segment_name FORMAT a30
2º O comando abaixo é para identificarmos os INDEX
SELECT segment_name,
segment_type,
tablespace_name
FROM dba_segments
WHERE owner = 'HR' AND segment_type='INDEX';
3º O Comando abaixo é para identificarmos a quantidade de INDEX que se encontram fora de sua TABLESPACE
SELECT tablespace_name, count(*) indices
FROM dba_indexes
WHERE owner='HR'GROUP BY tablespace_name;
4º O Comando abaixo é para fazermos justamente o REBUILD dos INDEX para a TABLESPACE correta
SELECT 'alter index '||owner||'.'||index_name||' rebuild tablespace MAXINDEX;'
FROM dba_indexes WHERE tablespace_name = 'MAXDATA';