24 fevereiro, 2014

Oracle - Indice



--índice oracle
--listar indice que estão fora da tablespace indice
SET LINESIZE 200
SET PAGES 100
COL segment_name FORMAT a30
SELECT tablespace_name,count(*) indices FROM dba_indexes
WHERE owner=’USUARIO’ GROUP BY tablespace_name;

--montar comando de migração de índice

SELECT ‘alter index ‘||owner||’.'||index_name||’ rebuild tablespace NomeDaTableSpaceDeIndices;’
FROM dba_indexes
WHERE tablespace_name = ‘TableSpaceDados’;



-- Alterar o tablespace de indice
ALTER INDEX . REBUILD TABLESPACE;



Detalhe caso a tabela contenha campos do tipo BLOB, você terá que mover também os indices LOB, mas o comando é um pouco diferente, abaixo o comando para mover os indices LOB:

-- Alterar o tablespace de indice

ALTER TABLE . MOVE LOB() STORE AS (TABLESPACE );



fonte: vou ficar devendo, copiei o script a muito tempo e não tenho mais a origem. Desculpas a quem escreveu.

Nenhum comentário: