Conteúdo do cotidiano e gratuito de tecnologia em Banco de dados, Servidores Windows, Linux, BSD e Desenvolvimento em PL/SQL.
terça-feira, 19 de novembro de 2013
Oracle – Shrink de tabelas dentro da Tablespace (redução)
– Enable row movement.
ALTER TABLE hr.teste ENABLE ROW MOVEMENT;
– Recover space and amend the high water mark (HWM).
ALTER TABLE scott.emp SHRINK SPACE;
– Recover space, but don’t amend the high water mark (HWM).
ALTER TABLE scott.emp SHRINK SPACE COMPACT;
– Recover space for the object and all dependant objects.
ALTER TABLE scott.emp SHRINK SPACE CASCADE;
– Disable row movement.
alter table HR.TESTE disable row movement;
O Select abaixo, efetua a geração dos scripts para redução e realocação do espaço livre nas tabelas:
select t.*,
'ALTER ' || t.segment_type || ' ' || t.segment_name || ' ENABLE ROW MOVEMENT;' as enable_row_mov,
'ALTER ' || t.segment_type || ' ' || t.segment_name || ' SHRINK SPACE CASCADE;' as shrink,
'ALTER ' || t.segment_type || ' ' || t.segment_name || ' DISABLE ROW MOVEMENT;' as disable_row_mov
from (
select segment_name, segment_type, bytes/1024/1024 Size_Mb
from user_segments
where segment_type = 'TABLE'
and not exists(
select 1
from user_tab_columns
where table_name = segment_name
and data_type IN ('LONG', 'LONG RAW'))
order by bytes/1024/1024 DESC ) t;
fonte:
http://www.superti.org/?p=122
http://veduardodba.wordpress.com/2011/12/29/shrink-a-table/
Assinar:
Postar comentários (Atom)
Olá, após efetuar o shrink, não devem ser recriados os índices, constraints, etc..?
ResponderExcluirOlá Rodrigo,
ExcluirÉ uma boa prática efetuar o rebuild(reconstrução) dos índices das tabelas que tiveram seus dados realocados. Não coloquei isso aqui porque via de regra a movimentação de dados da tabela não pode invalidar os índices nela referenciados.
Obrigado por visitar o Blog,
Emerson
Obrigado, e você teria ou tem como explicar como funciona o rebuild?
ExcluirAbraços.
Olá Rodrigo,
ExcluirPosso te passar as referencias de estudos sobre os índices e sua alocação logica. Assim que possível adiciono essas referencias neste post.
Att,
Emerson S. Gaudencio