Meu objetivo é analisar os índices de um esquema para obter a melhor compactação de índice básica a ser aplicada.
vou usar o comando
ANALYZE INDEX OWNER.INDEX_NAME VALIDATE STRUCTURE;
Isso preencherá a SYS.INDEX_STATS
visualização com as informações que preciso, mas considerando que essa visualização não possui a OWNER
coluna, isso não está me ajudando. Aqui está o porquê:
Na minha instância Oracle tenho muitos esquemas contendo a instalação do mesmo produto preenchido com dados de clientes diferentes.
Estou preenchendo INDEX_STATS
looping DBA_INDEXES
e chamando ANALYZE INDEX
, portanto, qualquer chamada para ANALYZE INDEX OWNER.INDEX_NAME VALIDATE STRUCTURE
substituirá a entrada da chamada anterior no mesmo índice em um esquema diferente.
Posso salvar o conteúdo de INDEX_STATS
após ter analisado cada esquema, mas como nem todos os clientes possuem as mesmas tabelas instaladas devido à modularização do software, algumas entradas de INDEX_STATS
podem referir-se a chamadas anteriores para um esquema diferente.
Existe uma maneira de limpar o conteúdo INDEX_STATS
para que eu possa ter uma situação limpa antes de analisar cada esquema? Ou a única solução é juntar-se INDEX_STATS
para DBA_INDEXES
salvar o conteúdo de INDEX_STATS
uma tabela final contendo os dados de todos os esquemas?
O conteúdo de
INDEX_STATS
são temporários. Toda vez que você inicia uma nova sessão, a visualização fica vazia. Além disso, essa exibição contém dados apenas para o último índice que foi analisado.Portanto, não há necessidade de limpar o conteúdo, é apenas uma questão de organizar seu código adequadamente e armazenar os resultados em uma tabela permanente, se necessário.