Оптимизация запросов Firebird
Optimisation des requêtes Firebird couvre la manière dont les instructions SELECT sont exécutées : plans, statistiques, méthodes d'accès, modèles d'optimisation, et comment détecter les requêtes lentes avec MON$ et l'API Trace.
Programme
-
Performance des requêtes SELECT - comment une requête est exécutée
- Approche client-serveur
- Préparation, génération du plan, exécution, récupérations, mise en mémoire tampon
-
Statistiques d'exécution
- Lectures, écritures, récupérations, temps
- Cache de base de données, disque, CPU
- Comment le garbage affecte l'exécution
- Succès du cache (Classic vs SuperServer)
-
Méthodes d'accès / chemins de données
- Analyse NATURELLE
- Recherche par INDEX : arbres B, pointeurs d'enregistrement, direction, exemples
- Utilisation forcée de l'index, fusion binaire des index
- Cardinalité de la table et sélectivité de l'index
- Désactivation des index dans WHERE
- Ordre INDEX vs SORT (paramètres
firebird.conf) - Désactivation des index dans ORDER BY / GROUP BY
- Plans dans les procédures stockées et les vues
-
Optimisation des requêtes
- Comment lire un PLAN
- Ajustements de l'optimiseur
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN : implicite vs explicite, mauvaises jointures, LEFT/RIGHT, auto-jointures
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Suivi des requêtes lentes avec MON$ et l'API Trace
- Ce que sont MON$ et Trace
- Champs MON$ importants
- Paramètres et sortie de l'API Trace
- Outils (y compris la surveillance HQbird)