# Oracle Tuning Ptbr

> Performance tuning Oracle 19c — explain plan, AWR em tempo real, ASH, indexes, hints, bind variables, cursor sharing, DBMS_STATS, V$SQL, V$SQLAREA, V$SESSION_WAIT. ATIVE em query lenta, full scan indesejado, hard parse alto, index strategy, plano de execução ruim, estatísticas desatualizadas, cardinality errada, AWR snapshot, ASH amostragem. Frases — "query está lenta", "qual index criar", "melhorar explain plan", "muitos hard parse", "cursor sharing", "optimizer hint", "runstats". NAO ATIVE em DBA operacional (sessões/locks/tablespace), código PL/SQL novo, APEX, ORDS. Templates em assets/.

- Skill: `maxwbh/oracle-tuning-ptbr` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add maxwbh/oracle-tuning-ptbr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/maxwbh/oracle-tuning-ptbr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: Maxwbh (https://skillmd.com/u/maxwbh)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/maxwbh/oracle-tuning-ptbr

---


# oracle-tuning-ptbr — v2.0.0

Performance tuning Oracle 19c — análise de planos de execução, índices, AWR e ASH em tempo real.

**Desenvolvido por:** Maxwell da Silva Oliveira — [M&S do Brasil LTDA](https://msbrasil.inf.br)

## Áreas cobertas

| Área | Reference | Assets |
|---|---|---|
| **Performance** | `references/performance-tuning.md` | `explain_plan_workflow.sql`, `index_strategy_examples.sql` |

## Quando ativar

- Query lenta — análise de explain plan, `AUTOTRACE`, `DBMS_XPLAN.DISPLAY_CURSOR`
- Índices: `B-Tree`, `Bitmap`, `Function-Based`, `Composite`, `Invisible`
- `V$SQL`, `V$SQLAREA` — top SQL por `ELAPSED_TIME`, `CPU_TIME`, `BUFFER_GETS`
- `V$SESSION_WAIT`, `V$SYSTEM_EVENT` — wait event analysis
- Hard parse alto: bind variables ausentes, cursor sharing
- Cardinality errada: `DBMS_STATS`, `METHOD_OPT`, `HISTOGRAM`
- AWR em tempo real: `DBA_HIST_SQLSTAT`, `DBA_HIST_SYSTEM_EVENT` (requer Diagnostics Pack)
- ASH: `V$ACTIVE_SESSION_HISTORY`, `DBA_HIST_ACTIVE_SESS_HISTORY`
- Hints: `/*+ APPEND */`, `/*+ INDEX */`, `/*+ PARALLEL */`, `/*+ FIRST_ROWS */`
- `MERGE` vs loop, `BULK COLLECT` para I/O pesado
- Estatísticas: `GATHER_SCHEMA_STATS`, `GATHER_TABLE_STATS`, lock stats

**Não usar** para: DBA ops (sessão/lock/kill), código PL/SQL novo, APEX, ORDS.

## Princípios canônicos

- **Medir antes de otimizar.** Baseline com `SET TIMING ON` + `AUTOTRACE`. Sem medição, otimização é placebo.
- **Bind variables primeiro.** Hard parse elevado em `V$SQLAREA` resolve antes de qualquer tuning de index.
- **Index ≠ sempre melhor.** Full scan em tabela pequena ou query retornando > 10% das linhas geralmente vence B-Tree.
- **AWR requer licença.** `DBA_HIST_*` → Diagnostics Pack obrigatório. Checar `control_management_pack_access`.
- **Histogram nas colunas com skew.** Sem histogram, optimizer usa densidade plana → plano errado em distribuição assimétrica.
- **CREATE INDEX ONLINE** em produção — sem `ONLINE`, bloqueia DML.

## Referências cruzadas

| Precisa de | Skill |
|---|---|
| PL/SQL com BULK COLLECT, loop otimizado | **oracle-plsql-ptbr** |
| AWR histórico, sessões, DBA operacional | **oracle-dba-ptbr** |
| Query lenta em report APEX | **oracle-apex-ptbr** |
| Naming Trivadis em scripts de tuning | **oracle-trivadis-ptbr** |

