AWR Baselines

Dúvidas, dicas e atualizações sobre o Treinamento Oracle Performance Diagnostics & Tuning.
Post Reply
gcomenale

AWR Baselines

Post by gcomenale » Mon Jan 30, 2017 2:00 pm

Portilho, qual a vantagem de ser criar Baselines ou Template Baselines se você pode fazer a comparação das SNAPS via AWR direto?

Code: Select all

BEGIN
  DBMS_WORKLOAD_REPOSITORY.create_baseline_template(
   day_of_week          => 'ALL',
   hour_in_day          => 7,
   duration             => 12,
   start_time           => SYSDATE,
   end_time             => ADD_MONTHS(SYSDATE, 6),
   baseline_name_prefix => 'Diario_comercial_',
   template_name        => 'Base_Diario_comercial',
   expiration           => NULL);
END;
/


Eu crio um baseline template para coletar das 7h às 19h

Porém, não identifiquei como pegar via AWR a comparação por exemplo, do baseline de "Segunda-feira da primeira semana do mês 1 com Segunda-feira da primeira semana do mês 2".

Tem o select:

Code: Select all

SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.select_baseline_details(3));


Que com o baseline ID ele me trás informações do baseline específico, esse select também:

Code: Select all

SELECT metric_name, metric_unit, average, minimum, maximum FROM TABLE(DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRIC('Segundo Baseline de Teste')) ORDER BY metric_name


Ainda assim, se eu quero comparar, eu preciso executar dois selects, um para cada baseline ID.
Acho mais prático pegar direto via AWR o período que quero comparar, pois trás em um report único e em HTML (melhor visualização).

Existe alguma vantagem em criar os baselines assim? Não identifiquei nenhuma.

portilho
Site Admin
Posts: 482
Joined: Wed May 29, 2013 8:51 am

Re: AWR Baselines

Post by portilho » Tue Jan 31, 2017 7:59 am

Eu acho Baseline mais útil para algo assim:

Code: Select all

EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
START_SNAP_ID => 2600,
END_SNAP_ID => 2680,
BASELINE_NAME => 'BEFORE MIGRATION',
EXPIRATION => 365);


Desta forma, eu guardo "como foi o fechamento mensal antes da migração para o novo servidor", ou posso guardar todas as segundas-feiras, por exemplo.
A vantagem seria de que não seria necessário guardar TODOS os snapshots, e sim só os "interessantes". Por exemplo, começa a ficar inviável guardar 1 ano de snapshots.

Para comparar dois períodos (esta segunda-feira e a segunda-feira passada), acho mais fácil utilizar o AWR Compare Periods Report. No exemplo abaixo, eu estou comparando os snapshots 100 a 103 com os 1000 a 1003, que foram guardados graças à Baseline.

Code: Select all

@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
Enter value for report_type: html
Enter value for num_days: 2
Enter value for begin_snap: 1000
Enter value for end_snap: 1003
Enter value for num_days2: 30
Enter value for begin_snap2: 100
Enter value for end_snap2: 103
Enter value for report_name: AWR_DIFF_01.html

gcomenale

Re: AWR Baselines

Post by gcomenale » Tue Jan 31, 2017 9:53 am

hum

Então, caso minha retenção de AWR seja de 30 dias e meu baseline de 60, ele vai deletar todos maiores de 30 dias, menos os baselines que estiverem com expiration > 60?
Assim, ele retem apenas o que for realmente importante, certo?

portilho
Site Admin
Posts: 482
Joined: Wed May 29, 2013 8:51 am

Re: AWR Baselines

Post by portilho » Wed Feb 01, 2017 6:10 am

Isso mesmo.
Vai remover automaticamente os snapshots baseados na retenção padrão, exceto os de Baselines. E você pode colocar uma expiração nas Baselines também, ou remove-las manualmente com DROP.

gcomenale

Re: AWR Baselines

Post by gcomenale » Wed Feb 01, 2017 10:31 am

Legal, boa dica! :D

portilho
Site Admin
Posts: 482
Joined: Wed May 29, 2013 8:51 am

Re: AWR Baselines

Post by portilho » Thu Feb 02, 2017 11:34 am

:-)

Post Reply