Implémentation des opérateurs relationnels et optimisation



Documents pareils
ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Évaluation et optimisation de requêtes

Les bases de données

TP Bases de données réparties

Le langage SQL Rappels

1 Introduction et installation

1 Modélisation d une base de données pour une société de bourse

Structure fonctionnelle d un SGBD

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Langage SQL : créer et interroger une base

Algorithmique I. Algorithmique I p.1/??

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Optimisation SQL. Quelques règles de bases

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Dossier I Découverte de Base d Open Office

Le Langage SQL version Oracle

Base de données relationnelle et requêtes SQL

Bases de Données. Plan

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

INTRODUCTION AU DATA MINING

Bases de Données relationnelles et leurs systèmes de Gestion

TD n 10 : Ma première Base de Données

Introduction aux SGBDR

I4 : Bases de Données

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

INEX. Informatique en Nuage : Expérimentations et Vérification. Livrable n M1 PARALLÉLISME ET ÉVALUATION

16H Cours / 18H TD / 20H TP

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de données réparties: Fragmentation et allocation

A QUOI SERVENT LES BASES DE DONNÉES?

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

La présente publication est protégée par les droits d auteur. Tous droits réservés.

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données élémentaires Maude Manouvrier

Systèmes de Gestion de Bases de Données

Le Langage De Description De Données(LDD)

Cours: Les Jointures 1

Administration de Bases de Données : Optimisation

Bases de données cours 1

Boîte électronique. Découverte des principales fonctions d une messagerie électronique. (et les pièces jointes)

TP11 - Administration/Tuning

Guide pour les projets de mobilité AC102 Formation Professionnelle. Accès au Mobility Tool +

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Apprentissage par renforcement (1a/3)

Concevoir un modèle de données Gestion des clients et des visites

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Bases de données relationnelles

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Bases de données avancées Introduction

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Du 10 Fév. au 14 Mars 2014

Plan d Exécution Graphique pour des Requêtes SQL Simples

Auto-évaluation Oracle: cours de base

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Chapitre 7. Récurrences

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Introduction au Système de Gestion de Base de Données et aux Base de Données

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Techniques d optimisation des requêtes dans les data warehouses

Définitions. Numéro à préciser. (Durée : )

Active Directory et Windows PowerShell en action

Etape 1 : Connexion de l antenne WiFi et mise en route

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

avec Europ Act 2007 / 2013

Excel avancé. Frédéric Gava (MCF)

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

L objet de cet article est de présenter succinctement ces possibilités.

DataCar CRM V2.5 Gamme Expert Release Notes. DataCar CRM v2.5. Release Notes

Module 16 : Les fonctions de recherche et de référence

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Session S12 Les bases de l optimisation SQL avec DB2 for i

Bases de données documentaires et distribuées Cours NFE04

MODE OPERATOIRE OPENOFFICE BASE

Encryptions, compression et partitionnement des données

ZOTERO Un outil gratuit de gestion de bibliographies

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

BD et XML : Exercices

Access 2007 FF Access FR FR Base

Organisation Gestion du temps. Participation Notes et résumés Etudes et examens

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Cours pratique Excel. Dans chacune des feuilles, les donnés sont déjà entrées afin de gagner du temps.

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module 615-1: Cours Leadership 2.0

L exclusion mutuelle distribuée

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

PHP 5. La base de données MySql. A. Belaïd 1

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

UML et les Bases de Données

Transcription:

Implémentation des opérateurs relationnels et optimisation

Les opérateurs étudiés On regarde d abord les opérateurs pris un à un La sélection : σ La projection : π La jointure : ensuite, on s intéressera aux requêtes composées. Par exemple, on verra qu il vaut mieux, en général, faire σ A=cte (R) N que ) σ A=cte (R N

Exemple Marin(Num M, Nom M, Niv M, Age M) Réservation(Num M, Num B, Jour, Nom Pers) Bateau(Num B, Nom B, Cat B) Avec les instances respectives M, R et B. R : Tuple=40octets, T R =100 tuples par page, [R] =1000 pages au total. M : Tuple=50octets, T M =80 tuples par page, [M] =500 pages au total.

Jointure avec égalité d une colonne SELECT * FROM Résevation R1, Marin M1 WHERE R1.Num M = M1.Num M C est équivalent à un produit cartésien suivi d une sélection. Mais ce n est pas efficace. La taille du produit est de l ordre de [R] * [M] (500000). Le coût total est : [R] + [M] + [R]*[M] Pour estimer le coût d une opération, nous allons considérer le nombre d E/S en ne tenant pas compte du coût de l écriture du résultat.

Simple boucle imbriquée On suppose que la jointure se fait sur l égalité des attributs A et B de R et M (respectivement) Pour chaque tuple r dans R faire Pour chaque tuple m dans M faire si r.a = m.b alors ajouter r, m au résultat Coût : [R] + [R] T R [M] = 1000 + 1000 100 500 = 50001000 5 10 7 Si Marin est la relation externe dans la boucle, alors le coût serait : [M] + [M] T M [R] = 500 + 500 80 1000 = 40000500 4 10 7

Boucle imbriquée sur les pages Pour chaque page P de R Pour chaque page Q de M Pour chaque tuple r dans P Pour chaque tuple m dans M Si r.a=m.b alors ajouter r, m au résultat Coût =? Pour chaque page de R, on va lire toutes les pages de M. Le coût total sera donc [R] + [R] [M] = 1000 + 1000 500 = 501000 5 10 5 Si c est M qui est la relation externe dans la boucle alors le coût sera [M] + [M] [R] = 500 + 1000 500 = 500500 5 10 5

Boucle imbriquée utilisant le tampon On suppose que le tampon peut contenir B pages. Pour chaque page B-2 pages de R Pour chaque page Q de M Pour chaque tuple r de R au tampon Pour chaque tuple m dans M Si r.a=m.b alors ajouter r, m au résultat Coût=? Ici, on réserve 1 zone tampon pour l écriture du résultat Pour chaque groupes de B 2 pages de R, on lit toutes les pages de M. Le nombre de groupes est [R]/(B ( 2) ) Si B = 102 alors le coût est [R] + [R]/(B 2) [M] = 1000 + (1000/100) 500 = 6000 = 6 10 3

Boucle imbriquée avec Index Pour chaque tuple r dans R faire Pour chaque tuple m dans M où r.a = m.b faire ajouter r, m au résultat Si M est indexée, alors le coût est : [R] + [R] T R * coût pour trouver les bons tuples dans M Si M a un index en arbre B+, l index aura 3 à 5 niveaux puis au maximum 1 lecture par tuple trouvé (cela dépend du fait que l index soit primaire ou secondaire)

Jointure avec Tri-Fusion Sort-Merge Join Trier R et M r premier tuple de R, m premier tuple de M G m premier tuple de M Tant que ni fin(r) ni Fin(M) Faire Tant que r.a < m.b Faire r tuple suivant dans R Tant que m.b < r.a Faire m tuple suivant dans M Tant que m.b = r.a Faire G m m Tant que r.a = m.b Faire ajouter r, m m tuple suivant dans M r tuple suivant dans R m G m Fin

Jointure avec Tri-Fusion R est scannée une seule fois. Chaque groupe de tuples de M joignables est scanné autant de fois qu il y a de tuples dans R avec qui ils sont joignables. (De fortes chances, que les pages se trouvent déjà dans le tampon). Le coût : Le tri de R est de l ordre 2*[R]log B [R] où B est le nombre de ( zones tampons. En) effet, le tri de R a un coût de 2 [R] log B 1 ([R]/B) + 1 On peut donc estimer le coût total à 2([R]log B [R] + [M]log B [M]) + [R] + [M] En ( considérant B = 102 on obtient 2 1000log 102 (1000) + 500log 102 (500) ) + 1000 + 500 = 5832 (cf. la jointure Boucle+ Tampon)

Sélection On considère les sélections de la forme SELECT * σ Att op valeur (R) FROM Reservation R WHERE R.Nom Pers < C% S il n y pas d index et si fichier non trié, coût=[r]=1000 En utilisant un index, le coût dépend du nombre de tuples retournés et du fait que l index soit primaire ou non. Exemple : un arbre B+, 10% des 100000 tuples sont retournés. Le cas primaire : Un peu plus de 100 E/S (10000 tuples résidant dans 100 pages + parcours de l arbre) Le cas non groupé 10000 E/S! (les 10000 tuples se trouvent éparpillés)

Sélection Les marins ayant réservé le bateau 5 après le 8/9/98. a jour > 8/9/94 b Num B = 5 σ a b (R) Si on a un index sur Jour, Num B alors on peut l utiliser. De même qu un index Num B, Jour. Si l on a deux index, il vaut mieux commencer par le chemin d accès le plus sélectif. Noter qu un index sur Nom Pers, Jour, Num B n est d aucun secours ici

Projection SELECT DISTINCT FROM R.Num N, R.Num B Reservation R Utiliser le tri externe 1 Modifier la première passe en éliminant les attributs non désirés. En sortie, on a le même nombre de tuples mais avec des tailles plus petites. Dans l exemple, si la taille des nouveaux tuples est de 1 4, alors en sortie de cette première phase, on a 250 pages au lieu de 1000. 2 Modifier les phases de fusion de sorte à éliminer les doublons. A chaque phase, en sortie on a moins de tuples. S il y a un index sur tous les attributs recherchés, alors parcourir l index.

Optimisation Une requête est une succession d opérations. Pour une même requête, il y a plusieurs plans équivalents. Π Nom_N σ Num_B=100 Niv_N > 5 SELECT FROM WHERE N.Nom N Navigateur N, Resevation R N.Num N = R.Num N AND N.Niv N > 5 AND R.Num B = 100 Réservation Num_N=Num_N Navigateur L idéal : trouver le meilleur plan, en pratique : éviter le pire des plans.

1er plan Π Nom_N (On the fly) σ Num_B=100 Niv_N > 8/8/98 (On the fly) Num_N=Num_N Simple boucle imbriquée Réservation Navigateur Coût : Ici, il n y a que la jointure qui nécessite des accès disque. Donc le coût est égal à celui de la jointure.

2ème plan Π Nom_N (On the fly) Num_N=Num_N (Sort Merge Join) (Scan; σ σ Résultat dans T1 Num_B=100 Niv_N > 5 (Scan; Resultat dans T2 Reservation Navigateur La sélection est exécutée au plus tôt. Avec 5 tampons : Scan de R = 1000 et écriture de T1 = CT1 Scan de N = 500 et écriture de T2 = CT2 Supposons que CT1 = 10 et CT2 = 250. Alors, Tri de T1=2*10, Tri de T2=3*250 et la fusion est = 10 + 250. Total = 2530

Le coût de CT1 suppose une distribution uniforme et un nombre de bateaux égal à 100 (autant de réservations pour chaque bateau). Pour CT2, on a fait la même hypothèse avec des niveaux dans [1... 10]

3ème plan Π Nom_N (On the fly) σ Niv_N > 5 (On the fly) Num_N=Num_N (Boucle imbriquée avec index, et pipelining ) (Utiliser l index Ne pas écrire le résultat) σ Num_B=100 Navigateur Réservation

Avec un index primaire sur Num B et une distribution uniforme, on lit 10 pages dans Réservation (+ un nombre de pages = hauteur de l arbre). Chaque tuple r du résultat est tout de suite joint avec Marin (au max avec un tuple) Avec un index haché (sans débordement) sur Num M (la clé) de Marin et comme il y a 1000 tuples à joindre, on fait au max 1000 accès. Ce qui donne un coût total estimé à 1010

Paramètres de choix du meilleur plan Estimer le coût de chaque opération dans le plan Estimer la taille des résultats intermédiaires Les catalogues contiennent des infos sur # tuples et # pages pour chaque relation Les différents index pour chaque relation # valeurs de clés d indexation et # pages pour chaque index hauteur de chaque index, les valeurs Max et Min de la clé d indexation Mis à jour périodiquement.

Hypothèses généralement utilisées SELECT FROM WHERE une liste d attributs une liste de relations terme1 AND terme2...and termek Le # Max de tuples = le produit du # tuples de chaque relation Le nombre de valeurs pour l attribut A dans la relation R est noté V R (A) Un facteur de réduction FR est associé à chaque terme de la clause WHERE R.A = Val a un FR = 1/V R (A) ( ) R.A = S.B a un FR = 1/Max v R (A),v S (B) A > Val a un FR = Max A(R) Val Max A (R) Min A (R) La cardinalité du résultat = # Max * FR 1 FR K