Chapitre IV
Chapitre IV
Chapitre IV
CHAPITRE IV
OPTIMISATION DE REQUÊTES
DR SERIGNE DIAGNE
PLAN DU COURS
Introduction
I. Arbre algébrique
2 1. Définition
2. Représentation des opérations de l’algèbre relationnelle
II. Optimisation de requêtes
1. Restructuration algébrique
2. Heuristiques d’optimisation
III. Exercice d’application
INTRODUCTION
La plupart des SGBD relationnels modernes offrent des langages de manipulation basés
sur SQL ;
SQL est un langage non procédural qui utilise des opérateurs ensemblistes ;
L’utilisateur définit les données qu’il veut visualiser sans fournir des algorithmes
3
d’accès à ces données ;
L’objectif de l’optimisation est de déterminer ces algorithmes d’accès appelés plan
d’exécution ;
Il est essentiel pour un système d’utiliser des plans d’exécution optimisés pour les
requêtes les plus fréquentes ;
Un plan d’exécution dépend du schéma interne de la base de données (particulièrement
de l’existence d’index) et de la taille des tables.
INTRODUCTION
Un optimiseur de requêtes transforme une requête exprimée dans un langage source
(SQL par exemple) en un plan d’exécution ;
Un plan d’exécution est une séquence d’opérations de bas niveau réalisant efficacement
l’accès aux données ;
4 L’exécution d’une requête SQL par un SGBD suit les étapes suivantes :
Analyse syntaxique : Vérification de la syntaxique et traduction en opérations algébriques ;
Contrôle de l’accès aux données : Vérification des droits d’accès de l’utilisateur ;
Optimisation : Génération des plans d’exécution et choix du meilleur ;
Exécution : Compilation et exécution du plan choisi.
Optimiser une requête c’est chercher le plan d’exécution optimal pour minimiser le coût
de son exécution en ressources et diminuer la durée de son exécution ;
Le système construit tous les arbres algébriques possibles pour la requête, puis évalue
leur coût et enfin choisit celui qui a le plus petit coût d’exécution.
I. ARBRE ALGÉBRIQUE
I. 1. Définition
C’est la représentation graphique sous forme d’arbre d’une requête dans laquelle :
les feuilles représentent les relations ;
5 les nœuds intermédiaires représentent les opérateurs algébriques ;
le nœud racine représente la relation résultat de la requête ;
les arcs représentent les flux de données entre les opérations ;
les tris sont représentés par des rectangles contenant les attributs sur lesquels ils portent ;
les agrégats sont représentés par un rectangle contenant les attributs de la clause Group
By et d’un autre rectangle contenant les attributs résultats calculés.
I. ARBRE ALGÉBRIQUE
I. 2. Représentation des opérations de l’algèbre relationnelle
Projection Sélection Jointure naturelle
6 Tri Agrégats