Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes



Documents pareils
Évaluation et optimisation de requêtes

TP Bases de données réparties

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

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

Administration de Bases de Données : Optimisation

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

Le langage SQL Rappels

INTRODUCTION AU DATA MINING

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Implémentation des SGBD

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

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

Bases de Données. Plan

Dossier I Découverte de Base d Open Office

Techniques d optimisation des requêtes dans les data warehouses

Bases de données avancées Introduction

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Année Universitaire 2009/2010 Session 2 de Printemps

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

A QUOI SERVENT LES BASES DE DONNÉES?

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

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

//////////////////////////////////////////////////////////////////// Administration bases de données

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

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

Optimisations des SGBDR. Étude de cas : MySQL

Optimisation SQL. Quelques règles de bases

Bases de données relationnelles

Les bases de données

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

Bases de données et sites WEB

données en connaissance et en actions?

Algorithmique I. Algorithmique I p.1/??

Structure fonctionnelle d un SGBD

Algorithmes de recherche

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

Le Langage De Description De Données(LDD)

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

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

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

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

Les bases de l optimisation SQL avec DB2 for i

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Langage SQL : créer et interroger une base

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

Le Langage SQL version Oracle

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

SYSTÈME DE GESTION DE FICHIERS

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

1 Introduction et installation

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

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Limitations of the Playstation 3 for High Performance Cluster Computing

Encryptions, compression et partitionnement des données

Programmation parallèle et distribuée

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

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

Chapitre 1 : Introduction aux bases de données

Modélisation de bases de données : Le modèle relationnel

Programmation parallèle et distribuée

Datawarehouse and OLAP

UE C avancé cours 1: introduction et révisions

Les technologies du Big Data

Bases de Données Avancées

A QUOI SERVENT LES BASES DE DONNÉES?

ECTS CM TD TP. 1er semestre (S3)

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données - Modèle relationnel

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

4.2 Unités d enseignement du M1

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Chap. 2: L approche base de données

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

Big Data et Graphes : Quelques pistes de recherche

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

16H Cours / 18H TD / 20H TP

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

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

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

Architectures d implémentation de Click&DECiDE NSI

Du 10 Fév. au 14 Mars 2014

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données cours 1

Cours: Les Jointures 1

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours Bases de données

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

I4 : Bases de Données

Introduction à MapReduce/Hadoop et Spark

Partie 7 : Gestion de la mémoire

Big Data et Graphes : Quelques pistes de recherche

Chapitre 5 : Flot maximal dans un graphe

Programmes des classes préparatoires aux Grandes Ecoles

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

ETL Extract - Transform - Load

Jean-François Boulicaut & Mohand-Saïd Hacid

Transcription:

Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs relationnels Restructuration de la requête Coût des opérations Optimisation du coût Espace de recherche Stratégie de recherche 1 2 Plan d exécution Π Ename, Title Comment obtenir ce plan? T 5 Comment exécuter chaque noeud? T 3 Quel coût? T 2 T 4 ΠPno Meilleur plan? T 1 σ Budget>250000 σ G >2 Group by Pno Π Ename, Title (Π Pno (σ G >2 Group Pno ()) ( ((σ Budget>250000 ) ))) Algèbre étendue 3 Traitement des requêtes Requête déclarative (SQL) Processeur de requêtes Plan d'exécution (accès bas niveau aux données code exécutable) Compilateur Générateur de plans Estimation de coûts Exécution des plans Algo. opérateurs Chemins d accès 4 1

Implémentation des opérateurs Rappel: accès disque >> accès mémoire (négligeable) Sélection (avec R contenant n pages disques) parcours séquentiel (scan) le nombre d accès disques est en O(n) Parcours (scan) avec index index B + O(logn) /* hauteur (log base k) + nb pages résultat index haché O(1) /* statique en supposant une bonne répartition. O(2) hachage dynamique ion sans élimination des doubles O(n) avec élimination des doubles en triant O(nlogn) en hachant O(n+t) où t est le nombre de pages du fichier haché 5 Implémentation des opérateurs Jointure (R sur n pages, S sur m pages) boucle imbriquée (nested loop): T = R S foreach tuple r R do /* foreach page de R foreach tuple s S do if r==s then T = T + <r,s> O(n+n*m) amélioration possible pour réduire les accès disques boucles imbriquées par pages ou blocs : permet de joindre chaque n-uplet (page) de S avec non plus un seul n-uplet (page) de R, mais avec tous (on suppose p) ceux qui tiennent en MC (p+1) O(n+m*n/p) Cas particulier si R tient en mémoire, n/p = 1, O(n+m) 6 Implémentation des opérateurs Jointure boucle imbriquée et index sur attribut de jointure de S (cas typique : jointure sur clé étrangère) foreach tuple r R do accès aux tuples s S par index (ou hachage) foreach tuple s do T = T + <r,s> /* O(n+M),M=card(R)*k(hauteur) tri-fusion trier R et S sur l attribut de jointure : tri externe O(nLog(n)) fusionner les relations triées : O(n+m) Peut être optimisé en commençant la fusion avant la fin complète du tri hachage hacher R et S avec la même fonction de hachage : O(n+m) L + O(n+m) E pour chaque paquet i de R et i de S, trouver les tuples où r=s : O(n+m) L 7 Tri externe Algo Trier des paquets de k pages tenant en mémoire disponible n/k paquets, 2n E/S Charger les premières pages de chaque paquet et trier Dès qu une page est vide, charger la suivante du même paquet On obtient des paquets de k 2 pages triés n/k 2 paquets, 2n E/S Continuer jusqu à obtenir un paquet de k s >= n pages Coût total A chaque étape on lit et écrit toutes les données : 2n E/S Nombre d étape s, tel que k s =n : s = log k (n) Nb : si tri pour fusion, pas besoin de faire la dernière étape, on fait la fusion directement avec l autre relation 8 2

Optimisation Restructuration 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 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 9 10 Conversion en arbre algébrique Exemple Restructuration SELECT Ename FROM,, WHERE.Eno=.Eno AND.Pno=.Pno AND Ename NOT= J.Doe AND Pname = CAD/CAM AND (Dur=12 OR Dur=24) σ DUR=12 OR DUR=24? Réduit taille pour jointure Risque de perdre l index σ ENAME J. DOE PNO ENO Calcul du coût d un plan La fonction de coût donne les temps I/O et CPU nombre d instructions et d accès disques Estimation de la taille du résultat de chaque noeud Permet d estimer le coût de l opération suivante sélectivité des opérations facteur de réduction propagation d erreur possible 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 11 12 3

Statistiques Relation cardinalité : card(r) taille d'un tuple : largeur de 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) Stockage : Les statistiques sont des métadonnées, stockées sous forme relationnelle Rafraîchies périodiquement, pas à chaque fois. Le fameux compromis L/E 13 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 14 Arbres de jointures Exemple Avec N relations, il y a O(N!) arbres de jointures équivalents qui peuvent être obtenus en appliquant les règles de commutativité et d'associativité SELECT Ename,Resp FROM,, WHERE.Eno=.Eno AND.PNO=.PNO SELECT Ename FROM p, w, 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) σ DUR=12 OR DUR=24 σ ENAME!= J. DOE 15 16 4

Requête équivalente Π Ename Autre requête équivalente Π Ename σ Pname=`CAD/CAM (Dur=12 Dur=24) Ename<>`J. DOE Π Pno,Ename Π Pno Π Pno,Eno Π Eno,Ename σ Pname = `CAD/CAM σ Dur =12 Dur=24 σ Ename <> `J. Doe 17 18 Encore une requête équivalente Stratégie de recherche U σ σ ENAME<> J. DOE DUR=24 σ σ ENAME<> J. DOE DUR=12 19 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) UPMC - UFR 919 amélioration Ingéniérie itérative I3009 bases (iterative de données improvement) 20 5

Stratégies de recherche Algorithmes de recherche Déterministe R 4 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 Aléatoire R 4 R 4 21 22 Génération de plan physique Conclusion 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 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 et cours M1) 23 24 6