Index
Tdm
Précédent Le
modèle relationnel
Go up to Top
Go down to Réecriture
des requêtes
Suivant Cohérence
des interrogations et accès concurrents
L'optimiseur de requêtes
Avec des langages tels que sql, l'utilisateur précise les propriétés
des données qui l'intéressent sans fournir d'algorithme d'accès.
Les optimiseurs de requête sont là pour cela, leurs objectifs sont
de :
- vérifier la correction syntaxique de la question,
- rechercher des questions équivalentes plus simples,
- déterminer l'ordre des opérations élmentaires d'accès en vue de :
- réduire le nombre d'entrées/sorties,
- réduire le temps cpu,
- réduire la taille des ressources mémoires nécessaires,
- optimiser en premier les questions les plus fréquentes.
Chaque sgbd contient un optimiseur de requêtes qui peut être légrement
différent d'un sgbd à l'autre. Les algorithmes utilisés
sont rarement connus en détail mais les grandes étapes de l'optimisation
sont en génral :
- Représenter la requête sous une forme interne et la décomposer en une séquence
d'opérations élmentaires.
- Transformer la requête par :
- simplification : remplacement d'une question par une question équivalente plus simple,
- ordonnancement des opérations élémentaires.
- Construire un ensemble de plans d'exécution candidats.
- Calculer le coût de chaque plan et choisir le meilleur.
- Exécuter la requête.
Réécriture
des requêtes
Choix
des chemins d'accès
Requête
portant sur une seule table
Jointures
sans index
Jointures
avec index
ORDER
BY
Index
Tdm
Précédent Le modèle relationnel
Go up to Top
Suivant Cohérence des interrogations et accès concurrents