Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMarin Gon Modifié depuis plus de 10 années
1
Optimisation algébrique de requêtes relationnelles
Witold LITWIN
2
Exemple canon SP S P
3
Pourquoi optimiser algébriquement ?
|S| = 100 et |SP| = 500 SELECT SNAME FROM S SP WHERE S.S# = SP.S# AND P# = 'P1' ; Strategies possibles : ((S join SP ) where P# = 'P1' ) [SNAME] 2. ( S join (SP where P# = 'P1' )) [SNAME] Autres
4
Evaluation de performances
Criteria: prix de mémoire et de CPU |T| : taille du résultat intermédiaire T {T} : nombre de tuples examinés pour produire T
5
Evaluation Stratégie 1: | T = S JOIN SP | SP| = 500
| T' = T WHERE P# = P1 | = 5 (en moyenne) | T'' = T' [SNAME] | {T} boucle imbriquée) ' '' (en moyenne)
6
Evaluation Stratégie 2 : | T = SP WHERE P# = P1 | = 5 (en moyenne)
| T' = S JOIN T | T | = 5 | T'' = T' [SNAME] | {T} '
7
Comparaison Stratégie 2 est beaucoup plus efficace que Stratégie 1:
500 : 5 = pour la mémoire temporaire 50505 : 1005 = 50 pour le CPU Optimisation est importante !
8
Graphe de la requête Stratégie 1 [SNAME] WHERE P# = 'P1' S SP
9
Graphe de la requête Stratégie 2 [SNAME] WHERE P# = 'P1' S SP
10
Règle principale d'optimisation algébrique relationnelle
Les restrictions et les projections doivent en général être poussées vers le bas de l'arbre
11
Quelques autres règles utiles
Toute règle d'amélioration algébrique, si prouvée valable dans certain cas Plusieurs opérations en même temps jointure et projection jointure et restriction restriction et projection Une projection sur l'attribut de jointure poussée sous la jointure Si mémoire est + chère que CPU, alors pousse max de projections vers le bas
12
Jointures multivaluées X JOIN Y JOIN Z JOIN V
13
Jointures multivaluées X JOIN Y JOIN Z JOIN V
Traitement Parallèle V Z Y Z V X Y X
14
Jointures multivaluées X JOIN Y JOIN Z JOIN V
Jointures parallèles hachées V Z X Y X Y Z V
15
Limites d'optimisation algébrique
Le choix de stratégie optimale dépend aussi de structures physiques: hachées ou ordonnées ? boucle imbriquées pour jointures ou "sort-merge" (tri-interclassement) ou hachage ? pagination ou la base est en RAM indexation Solution générale : choix de solution à moindre coût (System R)
16
Conclusion Optimisation algébrique est la pierre angulaire des SGBD relationnels Aucune règle ne s'applique à tous les cas c'est pourquoi on parle souvent de règles d'amélioration seulement L'optimisation physique est au moins aussi importante Le traitement parallèle ou distribué est d'une importance déterminante pour des grandes tables
17
FIN
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.