Otimização de consultas Firebird
Otimização de consultas Firebird aborda como as instruções SELECT são executadas: planos, estatísticas, métodos de acesso, padrões de ajuste e como identificar consultas lentas com MON$ e Trace API.
Conteúdo programático
-
Desempenho de consultas SELECT - como uma consulta é executada
- Abordagem cliente-servidor
- Prepare, geração de plano, execução, buscas, buffering
-
Estatísticas de execução
- Leituras, gravações, buscas, tempo
- Cache do banco de dados, disco, CPU
- Como o lixo (garbage) afeta a execução
- Cache hits (Classic vs SuperServer)
-
Métodos de acesso / caminhos de dados
- Varredura NATURAL
- Busca por ÍNDICE: árvores B, ponteiros de registro, direção, exemplos
- Uso forçado de índice, mesclagem de bits de índices
- Cardinalidade da tabela e seletividade do índice
- Desativando índices no WHERE
- Índice ORDER vs SORT (configurações do
firebird.conf) - Desativando índices no ORDER BY / GROUP BY
- Planos em stored procedures e views
-
Ajuste de consultas
- Como ler um PLAN
- Ajustes do otimizador
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: implícito vs explícito, joins incorretos, LEFT/RIGHT, self-joins
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Rastreamento de consultas lentas com MON$ e Trace API
- O que são MON$ e Trace
- Campos MON$ que importam
- Parâmetros e saída da Trace API
- Ferramentas (incluindo monitoramento HQbird)