Senhores(as), boa noite,
Hoje, vamos falar um pouco sobre coleta de estatísticas, Banco de dados Oracle.
A coleta de estatísticas é muito importante, pois, a coleta é utilizada para ajudar a determinar o plano de execução
mais eficiente para os comandos, provendo agilidade e bom desempenho do banco
de dados.
Para
verificar qual a ultima coleta de estatísticas realizadas nos Owners do banco
de dados, execute a consulta abaixo.
---
select count(*) qtd, owner,
trunc(last_analyzed) last
from dba_tables
WHERE OWNER NOT IN
('SYSTEM','SYS','OUTLN','DBSNMP','WMSYS','DIP','MGMT_VIEW','SYSMAN','APPQOSSYS',
'TSMSYS','CTXSYS','EXFSYS','MDSYS','ORDDATA','ORDSYS','WKSYS','WK_TEST',
'WKPROXY','RMAN','ORDPLUGINS','SI_INFORMTN_SCHEMA','HR','LBACSYS','ODM',
'ODM_MTR','OE','OLAPSYS','PM','QS','QS_ADM','QS_CBADM','QS_CS','QS_ES','FLOWS_FILES',
'QS_OS','QS_WS','SCOTT','SH','XDB','AURORA$JIS$UTILITY$','AURORA$ORB$UNAUTHENTICATED',
'QS_CB','ANONYMOUS','BLAKE','CLARK','JONES','ADAMS','MTSSYS','OSE$HTTP$ADMIN','PUBLIC',
'DMSYS','OWB','OWB_REP','ORACLE_OCM','MDDATA','APEX_030200')
group by trunc(last_analyzed),
owner
order by trunc(last_analyzed),
owner;
---
Caso queira coletar as estatísticas de algum owner do banco de
dados, execute a consulta abaixo, o resultado da mesma será o comando que deve
ser executado.
---
select
'Coletando estatisticas do schema: NOMEDOUSER :: '||to_char(sysdate,'dd/mm/yyyy
hh24:mi:ss') from dual;
execute dbms_utility.analyze_schema('NOMEDOUSER' ,'COMPUTE');
---
Para configurar a coleta de estatísticas para executar todos os
dias, elabore um scripts, com os OWNERs que deseja coletar as estatísticas e
agende o mesmo, na crontab (SO Linux) ou no agendador de tarefas (SO Windows).
Caso tenha dúvida de como elaborar o script, deixe seu comentário que irie auxiliando se
possível.
Qualquer dúvida, deixe seu comentário.
Abraços.
Opa,
ResponderExcluirMuito bom, ajudou muito.
Obrigado.
Att,
Ozeias