Chapitre3-P1 (Optimisation Syntaxique)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 32

Développement Avancé d’Applications Web

– Chapitre 3 –
Optimisation des Requêtes
(Partie 1 : Optimisation Syntaxique)

Dr Bouanaka Chafia
NTIC
chafia.bouanaka@univ-constantine2.dz

Etudiants concernés
Faculté/Institut Département Niveau Spécialité

Nouvelles technologies TLSI Licence 3 Génie Logiciel (GL)

Université Constantine 2 2023/2024. Semestre 1


Résumé

Objectifs du cours

Comprendre la problématique de la performance en BD


Connaitre les classes de solutions aux problèmes de performance
Maitriser les techniques de conception permettant d’optimiser les
performances d’une BD

Université Constantine 2 © Bouanaka Chafia 2


Plan du Cours

Motivation de l’optimisation des requêtes

Notion de Plan d’exécution

Optimisation Syntaxique

Université Constantine 2 © Bouanaka Chafia 3


Motivation de l’optimisation
Exemple introductif

On considère le schéma de base de données suivant :


 etudiant (cid, nom)
 Inscrire (cid, idcours)
 Cours(idcours, nom_cours, date_inscrip)

 Soient les requêtes SQL suivantes :


• Retrouver les informations de l’étudiant Benali
• Donner les noms des étudiants ayant un cid < 00112235
• Donner les noms des étudiants qui sont inscrits au cours ‘TABD’

Université Constantine 2 © Bouanaka Chafia 4


Motivation de l’optimisation
Exemple introductif

On considère le schéma de base de données suivant :


 etudiant (cid, nom)
 Cours(idcours, nom_cours)
 Inscrire (cid, idcours)

 Soient les requêtes SQL suivantes :


• Retrouver les informations de l’étudiant Benali
• Donner les noms des étudiants ayant un cid < 00112235
• Donner les noms des étudiants qui sont inscrits au cours ‘TABD’

Université Constantine 2 © Bouanaka Chafia 5


Motivation de l’optimisation
Exemple introductif
Pour exécuter une requête SQL, ou évaluer une expression algébrique, différents choix
doivent être fait :

• La réponse à ces questions est faite par le moteur de requêtes d’un SGBD
• Il définit un plan d’exécution
Université Constantine 2 © Bouanaka Chafia 6
Motivation de l’optimisation
Exemple introductif
Plan d’exécution : sert à
• Spécifier le chemin d’accès à adopter
• Spécifier l’algorithme à utiliser pour évaluer chaque
opérateur
• Spécifier le principe d’exécution des opérateurs : πnom
 matérialisation,
 pipeline
Optimisation: σnom_cours=‘TABD’
• Estimer le coût de chaque plan
• Sélectionner le plan le moins cher
idcours; index-nested loop
σnom=‘Benali’ ; utiliser index nom

σnom=‘Benali’ cid; hash join cours


etudiant

etudiant inscrit
etudiant

Université Constantine 2 © Bouanaka Chafia 7


Motivation de l’optimisation
Objectifs de l’optimisation

 Trouver un plan d'exécution permettant d'améliorer le temps de traitement de la


requête.
 Le temps de traitement est calculé sur la base de :
1. Le volume de données manipulées, en considérant certains paramètres :
 La taille ou la cardinalité des relations ( Le nombres de tuples)
 La largeur d’un tuple d’une relation( Le nombre d’attributs de la relation)
 Le nombre de valeurs possibles pour un constituant
 La longueur d’un constituant
2. Le temps d’exécution de l’algorithme d’implémentation des opérations de base

Université Constantine 2 © Bouanaka Chafia 8


Motivation de l’optimisation
Objectif de l’optimisation

Constat : Afin d’optimiser une requête, il est nécessaire de

réduire la taille des données

Comment :
 en filtrant les tuples par des restrictions
 en les simplifiant par des projections

 Il est alors nécessaire de définir des règles permettant de transformer les


requêtes afin de les optimiser

Université Constantine 2 © Bouanaka Chafia 9


Notion de Plan d’exécution
Définition

Une requête SQL est déclarative.


Elle ne précise pas comment calculer le résultat
Besoin d’une forme opératoire : un programme
Dans un SGBDR, le programme qui exécute une requête est appelé
Plan d’exécution
Ce plan est un arbre constitué des opérateurs de base

Université Constantine 2 © Bouanaka Chafia 10


Notion de Plan d’exécution
Types de Plans

Types de Plan
d’exécution
Plan d’exécution Logique : opérations de
l’algèbre relationnelle

Plan d’exécution Physique : Arbre


d’opérateurs d’implémentation

Important
Chaque SGBD propose un catalogue d’opérateurs ou algorithmes d’implémentations des
opérations de base de l’algèbre relationnelle

Université Constantine 2 © Bouanaka Chafia 11


Notion de Plan d’exécution
Plan d’exécution Logique

Définition
Un Plan d‘Exécution Logique de requête est un arbre dont les noeuds sont des
opérateurs de l'algèbre relationnelle
Un plan d’exécution logique est une structure de données arborescente :
Feuilles : relations ou tables utilisées dans la requête
Nœuds intermédiaires : opérations algébriques
Nœud racine : dernière opération algébrique avant le retour du résultat

Résultat de l’expression
algébrique

Opérations algébriques

Relation ou table

Université Constantine 2 © Bouanaka Chafia 12


Notion de Plan d’exécution
Plan d’exécution Physique

Définition
Un Plan d‘Exécution Physique est un plan d’exécution logique annoté par les
algorithmes d’implémentation des opérateurs de base

Université Constantine 2 © Bouanaka Chafia 13


Approches d’optimisation
Etapes d’exécution d’une requête SQL
Chaque requête SQL passe par un ensemble d’étapes avant d’être exécutée et les
résultats retournés à l’utilisateur. Ces étapes sont représentés dans la figure ci-dessous

Université Constantine 2 © Bouanaka Chafia 14


Approches d’optimisation
Etapes d’exécution d’une requête SQL
Les étapes d’analyse et d’optimisation sont très déterminantes dans l’exécution de la
requête, elles impliquent un ensemble de taches comme illustrer dans la figure ci-
dessous

Traduction

Construire les Plans


Université Constantine 2 © Bouanaka Chafia 15
Approches d’optimisation
Types d’optimisation

Approches
d’optimisation
Optimisation Sémantique : réalisée dans la phase
d’analyse
Optimisation Syntaxique : réalisée dans la phase
de construction des plans
Optimisation Physique : réalisée dans la phase de
choix des algorithmes

Université Constantine 2 © Bouanaka Chafia 16


Approches d’optimisation
Optimisation Sémantique

Définition
L’optimisation sémantique vise à détecter les contradictions dans une requête SQL et
éviter ainsi son exécution

Exemple
SELECT *
From Personne
Where Age < 10 AND Age > 25

Université Constantine 2 © Bouanaka Chafia 17


Optimisation Syntaxique

Université Constantine 2 © Bouanaka Chafia 18


Approches d’optimisation
Optimisation Syntaxique

Définition
Permet de réorganiser les différentes opérations relationnelles élémentaires d’une
requête afin de réduire la quantité des données manipulées

Université Constantine 2 © Bouanaka Chafia 19


Approches d’optimisation
Optimisation Syntaxique

L’optimisation syntaxique est réalisée en quatre étapes :


1. Traduire la requête SQL en une expression algébrique
2. Construire l’arbre algébrique
3. Générer les plans d’exécution par application des règles de transformation
4. Choisir le meilleur plan, c.-à-d., le plan le moins coûteux

Université Constantine 2 © Bouanaka Chafia 20


Optimisation des Requêtes
Optimisation Syntaxique

ETAPE 1 :
Traduction de la requête SQL en Algèbre Relationnelle

Université Constantine 2 © Bouanaka Chafia 21


Optimisation des Requêtes
Optimisation Syntaxique

L’étape de traduction consiste à trouver une expression de l’algèbre relationnelle


équivalente à la requête SQL

Rappel Algèbre Relationnelle

Université Constantine 2 © Bouanaka Chafia 22


Optimisation des Requêtes
Optimisation Syntaxique

Exemple
Soit la requête:
SELECT Nom, Bureau
FROM Employe, Departement
WHERE Employe.numoD = Departement.numoD
AND Employe.salaire > 1000

Traduction en Algèbre Relationnelle

Université Constantine 2 © Bouanaka Chafia 23


Optimisation des Requêtes
Optimisation Syntaxique

ETAPE 2 :
Tracer l’arbre algébrique

Université Constantine 2 © Bouanaka Chafia 24


Optimisation des Requêtes
Optimisation Syntaxique
Définition
L’arbre algébrique est une structure de données arborescente :
Feuilles : relations ou tables utilisées dans la requête
Nœuds intermédiaires : opérations algébriques
Nœud racine : dernière opération algébrique avant le retour du résultat

Exemple :

Université Constantine 2 © Bouanaka Chafia 25


Optimisation des Requêtes
Optimisation Syntaxique

ETAPE 3 :
Déduire les Plans Logiques d’exécution

Université Constantine 2 Dr Bouanaka Chafia 26


Optimisation des Requêtes
Optimisation Syntaxique

La déduction des plans d’exécution logique consiste à appliquer un ensemble de


règles de transformation pour obtenir des expressions algébriques équivalentes
L’objectif est de réorganiser les opérations algébriques afin de réduire la tailles des
données manipulées et obtenir des expressions optimisées.

Principe de l’optimisation syntaxique:


Le principe générale repose sur le constat suivant :
Les opérateurs unaires produisent des tables plus petites que la table d’origine
Les opérateurs binaires produisent des table plus grandes que la table d’origine.
En particulier, les produits cartésiens et les jointures accroissent la taille des
tables intermédiaires.

Idée Supprimer un maximum de lignes et de colonnes avant de faire les jointures.


De plus faire les jointures avant les produits cartésiens.

Université Constantine 2 © Bouanaka Chafia 27


Optimisation des Requêtes
Optimisation Syntaxique

Règles de Transformation :

Université Constantine 2 © Bouanaka Chafia 28


Optimisation des Requêtes
Optimisation Syntaxique

Règles de Transformation :

Université Constantine 2 © Bouanaka Chafia 29


Optimisation des Requêtes
Optimisation Syntaxique
Principe de l’optimisation:
L'optimisation intuitive se résume à :
1. Faire toutes les restrictions spécifiques pour limiter le nombre de tuples.
2. Faire toutes les projections mono-tables possibles pour limiter le nombre
d'attributs.
3. Faire les jointures et après chaque jointure, les projections possibles.

Algorithme d’optimisation:
En utilisant les règles de transformation, on obtient l’algorithme suivant :
1. Séparer les restrictions comportant plusieurs prédicats (R3).
2. Faire descendre les restrictions le plus bas possible (R4, R5)
3. Regrouper les restrictions successives portant sur une même relation
(R3)
4. Séparer les projections comportant plusieurs prédicats (R2).
5. Faire descendre les projections le plus bas possibles (R4, R6)
6. Regrouper les projections successives (R2)

Université Constantine 2 © Bouanaka Chafia 30


Optimisation des Requêtes
Optimisation Syntaxique

Etape 3 : Exemple

Université Constantine 2 © Bouanaka Chafia 31


Optimisation des Requêtes
Optimisation Syntaxique

Etape 3 : Exemple

Université Constantine 2 © Bouanaka Chafia 32

Vous aimerez peut-être aussi