Por muitas vezes, as estatísticas de sistema, são esquecidas. Qual a finalidade deste recurso? Como são coletadas? Quando devemos atualiza-las?
Estas estatísticas são importantes para o CBO (Cost Based Optimizer), na qual, o permite ponderar os planos de exceuções e custos com melhor exatidão. Quando há uma coleta destas informações, os seguintes parâmetros passam a ser conhecidos:
- single block read time em milisegundos: Importante para a utilização de índices.
- multiblock read time em milisegundos: Útil para os full scans (de índices ou tabelas).
- cpu speed in mhz: Importante os tipos de operação (hash, nested loop, etc)
- average multiblock_read_count in number of blocks: Utilizado para ponderação do I/O.
O CBO em conhecimento destes valores, possui melhores argumentos para julgar entre os planos de execução candidatos o melhor em termos de custo de I/O e CPU.
Com isto já conseguimos responder a primeira questão.
Estas informações ficam armazenadas na tabela sys.aux_stats$ e podem ser coletadas da seguinte forma:
Criar uma tabela auxiliar:
execute dbms_stats.create_stat_table( ownname => ‘SYS’, stattab => ‘stats_tst’);
Realizar uma coleta:
execute dbms_stats.gather_system_stats(gathering_mode=>’INTERVAL’, interval => 60, stattab => ‘stats_tst’, statid => ‘DAY’, statown => ‘SYS’);
Uma coisa importante é o período de coleta, que deve ser por um período de pelo menos 1 hora (isso é minha recomendação) e em um horário com maior utilização do sistema.
Import das estatisticas para o dicionário:
execute DBMS_STATS.IMPORT_SYSTEM_STATS(stattab => ‘stats_tst’, statid => ‘DAY’, statown => ‘SYS’);
E quando atualiza-las? Está questão pode ir muito explorada em realação as especificidades de cada base de dados, porém, meu intuito é apenas introduzir o conceito, portanto, a actualização passa por dois pontos:
- As estatísticas de Sistema devem ser condizentes com a infraestrutura (Sistema Operativo + Hardware);
- Baseada na primeira, toda alteração em qualquer um dos itens da infra, deve resultar numa actualização.
Com isto temos mais um conceito dos componentes que formam o CBO, que pretendo falar no futuro próximo.
Saudações Vascaínas….
Muito simples e facil de entender.