Estou procurando informações sobre extensões de reciclagem.
Ao descartar uma tabela, seus segmentos são renomeados para nomes gerados pelo sistema 'BIN$...' e as extensões são ocultadas.
Essas extensões ainda me impedirão de reduzir um arquivo de dados (ou tablespace)? Se assim for, eu gostaria de explicá-los no script.
Atualmente estou usando uma consulta inspirada no maxshrink.sql do AskTom:
select tbs.TABLESPACE_NAME, df.FILE_NAME,
round(MAX(e.BLOCKS+e.BLOCK_ID+1)*tbs.BLOCK_SIZE/1024/1024,2) "MinMB",
round(MAX(df.BYTES)/1024/1024,2) "FileMB"
from DBA_TABLESPACES tbs
LEFT JOIN DBA_DATA_FILES df on tbs.TABLESPACE_NAME = df.TABLESPACE_NAME
LEFT JOIN DBA_EXTENTS e on df.FILE_ID = e.FILE_ID AND df.RELATIVE_FNO = e.RELATIVE_FNO
-- WHERE
-- tbs.TABLESPACE_NAME like 'MY%'
GROUP BY df.FILE_ID, df.RELATIVE_FNO, tbs.TABLESPACE_NAME, tbs.BLOCK_SIZE, df.FILE_NAME
ORDER BY 1,2;
Atualização : Inicialmente, minha pergunta também perguntou por que não vejo mais os segmentos 'BIN$' criados pelo Flashback Drop Table mais na versão 12.2. No entanto, isso foi um erro do meu lado, minhas tabelas de teste simplesmente não tinham segmentos para começar.
Você pode encontrar seus detalhes em
*_SEGMENTS
visualizações/sinônimos.Sim, eles podem impedir que você reduza os arquivos de dados. Tabelas descartadas e quaisquer objetos associados, como índices, restrições, tabelas aninhadas e outros objetos dependentes não são movidos, eles são simplesmente renomeados com um prefixo de
BIN$
.Considere o seguinte exemplo (é apenas para fins de demonstração).
Não há lixeira para privilégio SYSDBA.
Removendo (comentando) o filtro da parte relevante da definição dos
DBA_EXTENTS
objetos descartados dos filtros: