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:
![](https://swiv.com.br/wp-content/uploads/2022/07/image-3-2-1024x781.png)
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.