Hoje, postarei sobre algo importante e que deve ser verificado sempre no banco de dados Oracle, algo simples porém é uma boa pratica.
Os objetos inválidos, caso exista algum objeto inválido no seu banco de dados, o mesmo deve ser recompilado.
Importante também é verificar o status dos índices, pois, caso haja índices inválidos ( UNUSABLE ), afetará a performance do seu ambiente de banco de dados.
Para verificar os objetos inválidos do seu banco de dados, execute o seguinte comando:
select 'ALTER '||decode(object_type,'PACKAGE BODY','PACKAGE',object_type)||' '||OWNER||'."'||OBJECT_NAME||'" COMPILE'||DECODE(OBJECT_TYPE,'PACKAGE BODY',' BODY','TRIGGER',' reuse settings')||';' OBJETO
FROM DBA_OBJECTS
WHERE STATUS = 'INVALID'
AND OBJECT_TYPE not in ('UNDEFINED','SYNONYM')
AND OBJECT_NAME not like 'BIN$%==$0'
order by owner||object_name,object_type desc
/
Obs.: O Select acima retornará todos os objetos inválidos existentes no seu banco de dados, e já montará como resultado o comando para validar os objetos inválidos.
O comando ficará semelhante á este, executando o comando, os objetos serão recompilados:
alter tipo_do_objeto owner.nome_do_objeto compile;
alter tipo_do_objeto owner.nome_do_objeto compile;
Para verificar a existência de índices inválidos ( UNUSABLE ) execute o comando abaixo:
Conforme no exemplo:
SQL>select distinct status from dba_indexes;
STATUS
--------
UNUSABLE
VALID
N/A
SQL>
Como podemos notar, existe índices inválidos ( UNUSABLE ), para validá-los, execute o comando abaixo:
select ' alter index '||owner||'.'||index_name||' rebuild; ' from dba_indexes where status = 'UNUSABLE';
Obs.: O select acima, retornará todos os índices inválidos existentes no seu banco de dados, e já montará como resultado o comando para validar os índices.
O comando ficará semelhante ao abaixo:
alter index owner.index_name rebuild;
Qualquer dúvida ou problema para executar as verificações, deixe seu comentário, responderei assim que possível.
Grande abraço.
Nenhum comentário:
Postar um comentário