segunda-feira, 26 de março de 2012

Coleta de estatísticas - Banco de dados Oracle

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.

Um comentário: