BDR 4I Cours 3 : Traitement et optimisation de requêtes

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

TP Bases de données réparties

Les bases de données

Le langage SQL Rappels

Langage SQL : créer et interroger une base

1 Introduction et installation

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

INTRODUCTION AU DATA MINING

Année Universitaire 2009/2010 Session 2 de Printemps

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

Évaluation et optimisation de requêtes

Bases de données et sites WEB

Le Langage SQL version Oracle

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

Bases de Données. Plan

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

Bases de données avancées Introduction

16H Cours / 18H TD / 20H TP

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Optimisation SQL. Quelques règles de bases

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

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

Le Langage De Description De Données(LDD)

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

Techniques d optimisation des requêtes dans les data warehouses

TP Contraintes - Triggers

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

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Les bases de l optimisation SQL avec DB2 for i

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

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

A QUOI SERVENT LES BASES DE DONNÉES?

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Encryptions, compression et partitionnement des données

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

données en connaissance et en actions?

4.2 Unités d enseignement du M1

Datawarehouse and OLAP

Java et les bases de données

Programmation Linéaire - Cours 1

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

INTRODUCTION : Données structurées et accès simplifié

Bases de Données Avancées

Vincent Augusto

INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Dossier I Découverte de Base d Open Office

Java DataBaseConnectivity

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Algèbre binaire et Circuits logiques ( )

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

Systèmes de Gestion de Bases de Données

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

ETL Extract - Transform - Load

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

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

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

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

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

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Mémo d'utilisation de BD Dico1.6

Fonctions de plusieurs variables

Interpréteur d algèbre relationnelle

Bases de données - Modèle relationnel

Bases de données et sites WEB Licence d informatique LI345

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

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

Cours 4 : Agrégats et GROUP BY

Administration de Bases de Données : Optimisation

Mise en oeuvre TSM 6.1

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

MySQL / SQL EXEMPLES

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Bases de données. Chapitre 1. Introduction

Présentation du module Base de données spatio-temporelles

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

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

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

Optimisations des SGBDR. Étude de cas : MySQL

Bases de données cours 1

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

PROJET 1 : BASE DE DONNÉES REPARTIES

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

IFT Concepts. Claude Frasson A de Bases de données avancées

Les technologies du Big Data

L exclusion mutuelle distribuée

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

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

Cours de Master Recherche

<Insert Picture Here> Solaris pour la base de donnés Oracle

Pourquoi l apprentissage?

Limites finies en un point

<Insert Picture Here> Exadata Storage Server et DB Machine V2

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Transcription:

BDR 4I803 2016 Cours 3 : Traitement et optimisation de requêtes 1 EMP(ENO, ENAME, TITLE) PROJECT(PNO, PNAME, BUDGET) WORKS(ENO, PNO, RESP, DUR) Problème Soit la requête pour chaque projet de budget > 250 qui emploie plus de 2 employés, donner le nom et le titre des employés Comment l exprimer en SQL? 2 1

Un plan d'exécution possible SELECT DISTINCT Ename, Title FROM Emp, Project, Works WHERE Budget > 250 AND Emp.Eno=Works.Eno AND Project.Pno=Works.Pno AND Project.Pno IN (SELECT Pno FROM Works GROUP BY Pno HAVING COUNT(*) > 2) T 1 Lire la table Project et sélectionner les tuples de Budget > 250 T 2 Joindre T 1 avec la relation Works T 3 Joindre T 2 avec la relation Emp T 4 Grouper les tuples de Works sur Pno et pour les groupes qui ont plus de 2 tuples, projeter sur Pno T 5 Joindre T 3 avec T 4 T 6 Projeter T5 sur Ename, Title Résultat Éliminer doublons dans T 6 3 Représentation algébrique 1.Comment obtenir ce plan? 2.Comment exécuter chaque nœud/sous-arbre? 3.Quel coût? 4.Meilleur plan? T 1 σ Budget>250 Project T 2 Works T 3 Π Ename, Title T 5 Emp T 4 Π Pno σ G >2 Group by Pno Works Algèbre étendue Π Ename, Title (Π Pno (σ G >2 Group Pno (Works)) (Emp ((σ Budget>250000 Project) Works))) 4 2

Traitement des requêtes Requête déclarative(sql) Processeur de requêtes Générateur de plans Compilateur Estimation de coûts Plan d'exécution (accès bas niveau aux données) Exécution des plans 5 Exécution d'un plan Π ENAME MÉMOIRE CENTRALE PNO σ PNAME= CAD/CAM ENO σ DUR=12 OR DUR=24 σename J. DOE Écriture données temp. pages Lecture données / index DISQUE Project Works Emp Index 6 3

Étapes du traitement d une requête Requête SQL Optimisation 1 Analyse 2 Simplification 3 Normalisation 4 Restructuration Répertoire Système : Schéma Index Statistiques Plan d'exécution optimal 7 Normalisation de requête Analyse lexicale et syntaxique vérification de la validité de la requête vérification des attributs et relations vérification du typage de la qualification Mise de la requête en forme normale forme normale conjonctive (p 11 p 12 p 1n ) (p m1 p m2 p mn ) forme normale disjonctive (p 11 p 12 p 1n ) (p m1 p m2 p mn ) OR devient union AND devient jointure ou sélection 8 4

Pourquoi simplifier? plus une requête est simple, plus son exécution peut être efficace Comment? en appliquant des transformations élimination de la redondance règles d idempotence p 1 ( p 1 ) faux p 1 (p 1 p 2 ) p 1 p 1 faux p 1 Simplification application de la transitivité (att1=att2,att2=att3) Éliminer des opérations redondantes : ex. : pas besoin de distinct après une projection sur une clé utilisation des règles d intégrité CI : att1 <100 Q: where att1 > 1000 élagage 9 Exemple de simplification SELECT FROM WHERE OR AND OR AND SELECT FROM WHERE Title Emp Ename = J. Doe P1 (NOT(Title = Programmer ) (Title = Programmer P2 Title = Elect. Eng. ) P3 NOT(Title = Elect. Eng. )) P1 ( P2 (P2 P3) P3) Title Emp Ename = J. Doe 10 P3 P2 5

Traduction en algèbre Conversion en arbre algébrique Exemple : Π ENAME σ DUR=12 OR DUR=24 SELECT FROM WHERE AND AND AND AND Ename Emp, Works, Project Emp.Eno = Works.Eno Works.Pno = Project.Pno Emp.Ename <> J.Doe Project.name = CAD/CAM (Works.Dur=12 OR Works.Dur=24) σ PNAME= CAD/CAM σ ENAME J. DOE PNO ENO Project Works Emp 11 Heuristiques Observation : les opérations manipulant moins de données sont plus rapides (sélectivité corrélée à la performance) Objectif : déterminer un ordre pour les opérations, censé être efficace. Méthode: Commencer par traiter les opérations les plus sélectives (projection, sélection) et de manière à réduire la taille des données d entrée pour les opérateurs suivants (jointures). La place en mémoire est un facteur primordial pour l efficacité d une jointure (cf. dans 2 semaines) 12 6

Exemple Π ENAME σ DUR=12 OR DUR=24 σ PNAME= CAD/CAM Meilleur. Pourquoi? Π ENAME σ ENAME J. DOE Équivalents? PNO PNO σ PNAME= CAD/CAM ENO ENO Project Works Emp σ DUR=12 OR DUR=24 σ ENAME J. DOE Project Works Emp Optimisation basée sur le coût Elaborer des plans arbre algébrique, restructuration, ordre d évaluation Estimer leurs coûts fonctions de coût en terme de temps d exécution coût I/O + coût CPU poids très différents par ex. coût I/O = 1000 * coût CPU Choisir le meilleur plan Espace de recherche : ensemble des expressions algébriques équivalentes pour une même requête algorithmes de recherche: parcourir l espace de recherche algorithmes d optimisation combinatoire 14 7

Restructuration Objectif : choisir l ordre d exécution des opérations algébriques (élaboration du plan logique). Conversion en arbre algébrique Transformation de l arbre (optimisation) règles de transformation (équivalence algébriques), estimation du coût des opérations en fonction de la taille Estimation du résultat intermédiaire (taille et ordre? ) En déduire l ordre des jointures 15 Restructuration Conversion en arbre algébrique Exemple SELECT Ename FROM Emp, Works, Project WHERE Emp.Eno=Works.Eno AND Works.Pno=Project.Pno AND Ename NOT= J.Doe AND Pname = CAD/CAM AND (Dur=12 OR Dur=24) Π ENAME σ DUR=12 OR DUR=24 σ PNAME= CAD/CAM? Réduit taille pour jointure Risque de perdre l index σ ENAME J. DOE PNO ENO Project Works Emp 16 8

Coût d un plan Fonction de coût = estimation du temps écoulé pour Accéder aux données : temps I/O exprimé en nombre de pages lues ou écrites Calculer le résultat d'une opération à partir des données lues Temps CPU dépend du nombre d instructions Estimation du coût d exécution de chaque noeud de l arbre algébrique utilisation de pipelines ou de relations temporaires importante Pipeline : les tuples sont passés directement à l opérateur suivant. Pas de relations intermédiaires (petites mémoires, ex. carte à puce). Permet de paralléliser (BD réparties, parallèle) Intéressant même pour cas simples : σ F^F (R), index sur F σ F (σ F (R)) Relation temporaire : permet de trier mais coût de l écriture 17 Estimer la cardinalité d'une opération Estimation du nombre de nuplets résultant de chaque nœud par rapport à ses entrées Permet d estimer le coût de l opération suivante sélectivité des opérations facteur de réduction propagation d erreur possible basé sur les statistiques maintenues par le SGBD 18 9

Statistiques Relation cardinalité : card(r) taille d'un tuple : largeur(r) fraction de tuples participant une jointure / attribut Attribut cardinalité du domaine nombre de valeurs distinctes distinct(a,r) = Π A (R) Valeur max, valeur min Hypothèses indépendance entre différentes valeurs d'attributs distribution uniforme des valeurs d'attribut dans leur domaine Sinon, il faut maintenir des histogrammes Equilarge : plages de valeurs de même taille Equiprofond: plages de valeurs contenant le même nombre d occurrence Equiprofond meilleur pour les valeurs fréquentes (plus précis) voir diapo suivante Stockage : Les statistiques sont des métadonnées, stockées sous forme relationnelle (cf. TME) Rafraîchies périodiquement, pas à chaque fois. Le fameux compromis L/E 19 Cardinalité des opérations Sélection : taille(r) = card(r) largeur(r) card(σ F (R)) = SF σ (F) card(r) où SF σ est une estimation de la sélectivité du prédicat, dont la forme générale est "nombre d'éléments sélectionnés / nombre d'éléments possibles" 1 SF σ (A = valeur) = card( A (R)) max(a) valeur SF σ (A > valeur) = max(a) min(a) SF σ (p(a i ) p(a j )) = SF σ (p(a i )) SF σ (p(a j )) valeur min(a) SF σ (A < valeur) = max(a) min(a) SF σ (p(a i ) p(a j )) = SF σ (p(a i )) + SF σ (p(a j )) (SF σ (p(a i )) SF σ (p(a j ))) SF σ (A ens_valeurs) = SF σ (A=valeur) card(ens_valeurs) Si A continue. Sinon, remplacer par Card 20 10

Cardinalité des opérations Projection card(π A (R)) <=card(r) (égalité si A est unique) Produit cartésien card(r S) = card(r) card(s) Union borne sup. : card(r S) = card(r) + card(s) borne inf. : card(r S) = max{card(r), card(s)} Différence borne sup. : card(r S) = card(r) borne inf. : 0 21 Cardinalité des opérations Jointure : cas particulier: A est clé de R et B est clé étrangère dans S vers R : card(r A=B S) = card(s) plus généralement card(r S) = SF J card(r) card(s) Comment l obtenir? Il faut des infos supplémentaire (SFj peut être stocké) 22 11

Histogramme Select * from R where A = 8 Nb occurrence Valeur estimée 5 1,6666 3 1 12 4 8 2,666 8 1,6 8 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 Equilarge Valeur estimée 4 Valeur réelle dans [0,12] (faire l hypothèse d uniformité dans l intervalle) Equiprofond Valeur estimée 8 Valeur réelle 8 Optimisation de requêtes 23 Espace de recherche Caractérisé par les plans équivalents pour une même requête ceux qui donnent le même résultat générés en appliquant les règles de transformation vues précédement Le coût de chaque plan est en général différent L'ordre des jointures est important 24 12

Commutativité des opérations binaires R S S R R S S R R S S R Règles de transformation Associativité des opérations binaires ( R S ) T R (S T) ( R S ) T R (S T ) Idempotence des opérations unaires Π A (Π A (R)) Π A (R) σ p1 (A 1 )(σ p2 (A 2 )(R)) σ p1 (A 1 ) p 2 (A 2 )(R) où R[A] et A' A, A" A et A' A" 25 Règles de transformation Commutativité de la sélection et de la projection (si proj. des attr. sél.) Commutativité de la sélection avec les opérations binaires σ p(a) (R S) (σ p(a) (R)) S σ p(ai ) (R (Aj,B k ) S) (σ p(ai ) (R)) σ p(ai ) (R T) σ p(ai ) (R) σ p(ai ) (T) (Aj,B k ) S où A i appartient à R et T Commutativité de la projection avec les opérations binaires Π C (R S) Π A (R) Π B (S) Π C (R (Aj,B k ) S) Π A (R) (Aj,B k ) Π B (S) Π C (R S) Π C (R) Π C (S) où R[A] et S[B]; C = A' B' où A' A, B' B, A j A', B k B' 26 13

Ordre des jointures Avec N relations, il y a O(N!) ordres de jointures équivalents qui peuvent être obtenus en appliquant les règles de commutativité et d'associativité Emp Works Project SELECT FROM Ename,Resp Emp, Works,Project Project Works Emp WHERE Emp.Eno=Works.Eno AND Works.PNO=Project.PNO Works Project Emp 27 Exemple SELECT Ename FROM Project p, Works w, Emp e WHERE w.eno=e.eno AND w.pno=p.pno AND Ename<>`J. Doe AND p.pname=`cad/cam AND (Dur=12 OR Dur=24) Π ENAME σ DUR=12 OR DUR=24 σ PNAME= CAD/CAM σ ENAME!= J. DOE Project Works Emp 28 14

Plan équivalent Π Ename σ Pname=`CAD/CAM (Dur=12 Dur=24) Ename<>`J. DOE A éviter! Works Project Emp 29 Autre plan équivalent Plus efficace que les plans précédents? Π Ename Π Pno,Ename Π Pno Π Pno,Eno Π Eno,Ename σ Pname = `CAD/CAM σ Dur =12 Dur=24 σ Ename <> `J. Doe Project Works Emp 30 15

Encore un autre plan équivalent U Π ENAME Π ENAME σ PNAME= CAD/CAM σ σ ENAME<> J. DOE DUR=12 Project Works Emp σ PNAME= CAD/CAM σ σ ENAME<> J. DOE DUR=24 Project Works Emp 31 Stratégie de recherche Il est en général trop coûteux de faire une recherche exhaustive Déterministe part des relations de base et construit les plans en ajoutant une relation à chaque étape programmation dynamique: largeur-d'abord excellent jusqu'à 5-6 relations Aléatoire recherche l'optimalité autour d'un point de départ particulier réduit le temps d'optimisation (au profit du temps d'exécution) meilleur avec > 5-6 relations recuit simulé (simulated annealing) amélioration itérative (iterative improvement) 32 16

Déterministe Stratégies de recherche R 4 R 3 R 3 R 1 R 2 R 1 R 2 Aléatoire R 1 R 2 R 3 R 2 R 1 R 2 R 1 R 3 33 Algorithmes de recherche Limiter l'espace de recherche heuristiques par ex. appliquer les opérations unaires avant les autres Ne marche pas toujours (perte d index, d ordre) limiter la forme des arbres Arbre linéaire Arbre touffu R 4 R 3 R 1 R 2 R 1 R 2 R 3 R 4 34 17

Génération de plan physique Sélection : Commencer par les conditions d égalité avec un index sur l attribut Filtrer sur cet ensemble de n-uplets ceux qui correspondent aux autres conditions Jointure Utilisation des index, des relations déjà triées sur l attribut de jointure, présence de plusieurs jointures sur le même attribut Pipelines ou matérialisation 35 Conclusion Point fondamental dans les SGBD Importance des métadonnées, des statistiques sur les relations et les index, du choix des structures d accès. L administrateur de bases de données peut améliorer les performances en créant de nouveaux index, en réglant certains paramètres de l optimiseur de requêtes (voir TME) 36 18

Conclusion Un SGBD doit transformer une requête déclarative en un programme impératif : Plan d exécution Algèbre Calculer les tailles des résultats intermédiaire donne une idée du coût d un plan mais.. Comment mettre en œuvre les opérateurs? Comment enchaîner les opérateurs? Réponses dans les prochains cours Comment trouver le meilleur plan en fonction de ce qui précède 37 19