Types of Performance Tuning Statistics

Quando nos deparamos com algum problema de performance, podemos utilizar diversas ferramentas disponilizadas pela Oracle para nos ajudar na investigação e diagnóstico do problema, como por exemplo as Views V$, Views do Dicionário de Dados, AWR, Relatórios StatsPack, ADDM, etc.

Por sua vez, essas ferramentas usufruem das “Tuning Statistics”, e o objetivo desse artigo é export os 3 tipos existentes dessas estatísticas e uma forma de definir o seu respectivo nível de coleta.

  • Cumulative Statistics: Desde o momento que uma instância é inicializada, o Oracle realiza coletas cumulativas do ambiente, dando insumos para os DBAs em algumas situações específicas. Obviamente, quando é realizado o restart da instância, todas as estatísticas são resetadas. Como exemplo desse tipo, temos a Time Model, e Instance Wait Events.
  • Metrics: Há casos onde as estatísticas por si só não nos dizem muitas coisas, mas quando colocamos na análise componentes adicionais, como as métricas, pode enriquecer a investigação. Por conta disso, o Oracle disponibiliza esse tipo de informação. Como exemplo, temos o Database Calls per Second.
  • Sampled Statistics: São estatísticas armazedas como Snapshots, nos permitindo realizar uma análise no passado. Exemplo: ADDM, AWR, ASH, etc.

Como esperado, temos a possibilidade de definir o nível dessas coletas, através do parâmetro “STATISTICS_LEVEL”, que possui os 3 valores abaixo:

  • Typical: Garante a coleta de todas as principais estatísticas necessárias para a funcionalidade de autogerenciamento do banco de dados. Esse é o valor padrão do parâmetro.
  • All: Estatísticas adicionais são incluídas no conjunto de estatísticas coletadas com a configuração TYPICAL. São estatísticas cronometradas do sistema operacional e estatísticas de plano de execução. Obviamente, requer mais recurso de processamento do ambiente para dar vazão nesse nível de coletas.
  • Basic: Desativa a coleta de muitas das estatísticas importantes exigidas pelos recursos e funcionalidades do banco de dados Oracle, incluindo:
Fonte: AQUI

Felizmente, o parâmetro pode ser definido a nível de Banco de Dados ou de Sessão. Outro ponto importante a se destacar é que, quando o parâmetro em questão é alterado, o Oracle altera um conjunto de outros parâmetros internamente, no qual podemos tomar conhecimento através da consulta abaixo:

[oracle@oel7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 31 20:19:41 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> SET LIN 200
SQL> SELECT STATISTICS_NAME,SESSION_STATUS,SYSTEM_STATUS,ACTIVATION_LEVEL,SESSION_SETTABLE FROM V$STATISTICS_LEVEL;

STATISTICS_NAME                                                  SESSION_ SYSTEM_S ACTIVAT SES
---------------------------------------------------------------- -------- -------- ------- ---
Buffer Cache Advice                                              ENABLED  ENABLED  TYPICAL NO
MTTR Advice                                                      ENABLED  ENABLED  TYPICAL NO
Timed Statistics                                                 ENABLED  ENABLED  TYPICAL YES
Timed OS Statistics                                              DISABLED DISABLED ALL     YES
Segment Level Statistics                                         ENABLED  ENABLED  TYPICAL NO
PGA Advice                                                       ENABLED  ENABLED  TYPICAL NO
Plan Execution Statistics                                        DISABLED DISABLED ALL     YES
Shared Pool Advice                                               ENABLED  ENABLED  TYPICAL NO
Modification Monitoring                                          ENABLED  ENABLED  TYPICAL NO
Longops Statistics                                               ENABLED  ENABLED  TYPICAL NO
Bind Data Capture                                                ENABLED  ENABLED  TYPICAL NO

STATISTICS_NAME                                                  SESSION_ SYSTEM_S ACTIVAT SES
---------------------------------------------------------------- -------- -------- ------- ---
Ultrafast Latch Statistics                                       ENABLED  ENABLED  TYPICAL NO
Threshold-based Alerts                                           ENABLED  ENABLED  TYPICAL NO
Global Cache Statistics                                          ENABLED  ENABLED  TYPICAL NO
Active Session History                                           ENABLED  ENABLED  TYPICAL NO
Undo Advisor, Alerts and Fast Ramp up                            ENABLED  ENABLED  TYPICAL NO
Streams Pool Advice                                              ENABLED  ENABLED  TYPICAL NO
Time Model Events                                                ENABLED  ENABLED  TYPICAL YES
Plan Execution Sampling                                          ENABLED  ENABLED  TYPICAL YES
Automated Maintenance Tasks                                      ENABLED  ENABLED  TYPICAL NO
Automatic DBOP Monitoring                                        ENABLED  ENABLED  TYPICAL YES
SQL Monitoring                                                   ENABLED  ENABLED  TYPICAL YES

STATISTICS_NAME                                                  SESSION_ SYSTEM_S ACTIVAT SES
---------------------------------------------------------------- -------- -------- ------- ---
Adaptive Thresholds Enabled                                      ENABLED  ENABLED  TYPICAL NO
V$IOSTAT_* statistics                                            ENABLED  ENABLED  TYPICAL NO
OLAP row load time precision                                     ENABLED  ENABLED  TYPICAL YES
Column Tracking Level                                            ENABLED  ENABLED  TYPICAL YES

26 rows selected.

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.