Optimización de consultas Firebird
Optimización de consultas Firebird cubre cómo se ejecutan las sentencias SELECT: planes, estadísticas, métodos de acceso, patrones de ajuste y cómo detectar consultas lentas con MON$ y Trace API.
Temario
-
Rendimiento de consultas SELECT - cómo se ejecuta una consulta
- Enfoque cliente-servidor
- Preparación, generación de plan, ejecución, recuperaciones, almacenamiento en búfer
-
Estadísticas de ejecución
- Lecturas, escrituras, recuperaciones, tiempo
- Caché de base de datos, disco, CPU
- Cómo afecta la basura a la ejecución
- Aciertos de caché (Classic vs SuperServer)
-
Métodos de acceso / rutas de datos
- Escaneo NATURAL
- Búsqueda por ÍNDICE: árboles B, punteros a registros, dirección, ejemplos
- Uso forzado de índices, combinación de bits de índices
- Cardinalidad de tabla y selectividad de índice
- Desactivar índices en WHERE
- Índice ORDER vs SORT (configuraciones de
firebird.conf) - Desactivar índices en ORDER BY / GROUP BY
- Planes en procedimientos almacenados y vistas
-
Ajuste de consultas
- Cómo leer un PLAN
- Ajustes del optimizador
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: implícito vs explícito, uniones incorrectas, LEFT/RIGHT, auto-uniones
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Seguimiento de consultas lentas con MON$ y Trace API
- Qué son MON$ y Trace
- Campos de MON$ que importan
- Parámetros y salida de Trace API
- Herramientas (incluido el monitoreo de HQbird)