Uma introdução ao AWR

O Oracle coleta automaticamente uma grande quantidade de informações e estatísticas a respeito da performance e atividade do banco. Essa informação é acumulada em memória(SGA) e depois escrita em disco periodicamente(por padrão a cada uma hora), nas tabelas que compõem o AWR(Automatic Workload Repository). Esse flush é feito pelo background process MMON.

Por padrão, o AWR guarda uma janela de 8 dias de informações. Mas tudo pode ser configurado conforme desejado. Para verificar os valores dessa configuração, é só consultar a view DBA_HIST_WR_CONTROL.

Também, pode-se configurar um snapshot como baseline, em que ele será preservado do processo automático de purge do AWR.

O parâmetro que controla no nível de estatísticas geradas é o STATISTICS_LEVEL. Que pode ter 3 valores:

  • TYPICAL – É o padrão. Irá colocar todas as estatísticas necessárias para um tunning, mas nada que impacte na performance.
  • BASIC – Irá desabilitar todas as estatísitcas, advisors e alertas do sistema. Isso não irá impactar na performance, melhorando.
  • ALL – Coleta estatísticas de forma mais detalhada. Mas pode degradar um pouco a performance do banco.

Para modificar a frequência e/ou o período de retenção pode-se utilizar a package DBMS_WORKLOAD_REPOSITORY. A procedure para realizar essa operação seria a MODIFY_SNAPSHOT_SETTINGS. Com a procedure CREATE_SNAPSHOT o Oracle faz um snapshot e salva no AWR na hora, fora as que já estão programadas para rodar automaticamente.

SQL> SELECT * FROM DBA_HIST_WR_CONTROL;
         DBID          SNAP_INTERVAL              RETENTION    TOPNSQL    CON_ID
_____________ ______________________ ______________________ __________ _________
   1522985886 +00 01:00:00.000000    +08 00:00:00.000000    DEFAULT            0


SQL>EXECUTE DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention=>43200,interval=>30);

Procedimento PL/SQL concluÝdo com sucesso.

SQL> SELECT * FROM DBA_HIST_WR_CONTROL;
         DBID          SNAP_INTERVAL              RETENTION    TOPNSQL    CON_ID
_____________ ______________________ ______________________ __________ _________
   1522985886 +00 00:30:00.000000    +30 00:00:00.000000    DEFAULT            0


SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;

Procedimento PL/SQL concluÝdo com sucesso.

SQL> SELECT SNAP_ID FROM DBA_HIST_SNAPSHOT ORDER BY SNAP_ID FETCH FIRST 5 ROWS ONLY;
   SNAP_ID
__________
      1530
      1531
      1532
      1533
      1534


SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id  => 1530, high_snap_id => 1534, DBID =>1522985886);

Procedimento PL/SQL concluÝdo com sucesso.

SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id=>1564,end_snap_id=>1565,baseline_name=>'TERCIOCOSTA',dbid=>1522985886);

Procedimento PL/SQL concluÝdo com sucesso.

SQL>

No exemplo acima, a configuração ainda estava na padrão, que é a recomendada para a maioria dos ambientes. Ou seja, os snapshots eram guardados por 8 dias e a cada uma hora era feito um novo snapshot. Isso ocupa cerca de 300mb de espaço no banco. Depois alteramos para reter os snapshots por um período de 30 dias e tirar uma novo snapshot a cada 30 minutos. Ambos parâmetros é em minutos.

Logo após foi criado um snapshot manualmente, consultado a view DBA_HIST_SNAPSHOT para verificar os snapshots mais antigos e deletar os mesmos. Para finalizar, foi criado um baseline com o nome TERCIOCOSTA que compreende os snap_id 1564 e 1565.

A package DBMS_WORKLOAD_REPOSITORY tem muitas procedures, recomendo sempre a leitura oficial da Oracle para entender mais completo o poder dela.

Para gerar um relatório sobre essas estatísticas, pode-se rodar um script, localizado em: @$ORACLE_HOME/rdbms/admin/awrrpt.sql.

Esse script irá solicitar poucas informações para rodar, como o formato(texto ou html) do relatório, a quantidade de dias a ser analisado, quais snapshots serão analisados.

Anúncios

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , , , , ,
Publicado em AWR

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 138.077 Visualizações
%d blogueiros gostam disto: