Evaluation et optimisation de requêtes

Documents pareils
Évaluation et optimisation de requêtes

TP Bases de données réparties

Les bases de données

Le langage SQL Rappels

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

Bases de données avancées Introduction

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

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

Administration de Bases de Données : Optimisation

16H Cours / 18H TD / 20H TP

INTRODUCTION AU DATA MINING

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

Langage SQL : créer et interroger une base

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

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

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

Bases de Données. Plan

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

1 Introduction et installation

Bases de données cours 1

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

Optimisation SQL. Quelques règles de bases

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

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Algorithmique I. Algorithmique I p.1/??

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 relationnelles et leurs systèmes de Gestion

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Structure fonctionnelle d un SGBD

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

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

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

Chapitre 1 Généralités sur les bases de données

Bases de données et sites WEB

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

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

Dossier I Découverte de Base d Open Office

CHAPITRE 1 ARCHITECTURE

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

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

Année Universitaire 2009/2010 Session 2 de Printemps

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Techniques d optimisation des requêtes dans les data warehouses

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

4D v11 SQL Release 5 (11.5) ADDENDUM

A QUOI SERVENT LES BASES DE DONNÉES?

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Bases de données relationnelles

Cours de bases de données. Philippe Rigaux

Bases de données - Modèle relationnel

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

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

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Introduction aux Bases de Données

Chapitre 7. Récurrences

25/01/05 TD Entrepôt de données IHS / Master ICA

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

Java DataBaseConnectivity

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

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

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

Bases de données élémentaires Maude Manouvrier

Bases de Données Relationnelles. Le Modèle Relationnel

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

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

Cours: Les Jointures 1

Java et les bases de données

Algèbre binaire et Circuits logiques ( )

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

Raja Bases de données distribuées A Lire - Tutoriel

Intégrité des données

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Datawarehouse and OLAP

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

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

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

Compétences Business Objects

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Gestion de données réparties. Cours 1

Le Langage De Description De Données(LDD)

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

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

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

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

Comment booster vos applications SAP Hana avec SQLSCRIPT

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Transcription:

Evaluation et optimisation de requêtes Patricia Serrano Alvarado à partir de transparents de Sylvie Cazalens et Philippe Rigaux Date 1

Evaluer, optimiser? Pour exécuter une requête SQL le SGBD doit comprendre, analyser et optimiser l exécution Passage du SQL à un ensemble d opérations Avec des «outils» on organise au mieux les opérations 2

Etapes du traitement d une requête Toute requête SQL est traitée en trois étapes : 1. Analyse et traduction de la requête. On vérifie qu elle est correcte, et on l exprime sous forme d opérations algébriques. 2. Optimisation : comment agencer au mieux les opérations, et quels algorithmes utiliser. On obtient un plan d exécution. 3. Exécution de la requête : le plan d exécution est compilé et exécuté. 3

Principales étapes Requête SQL (mode déclaratif) Analyse/ traduction On obtient des opérations Requête algébrique «Meilleur» plan Optimisation Exécution On obtient un plan d exécution On obtient l ensemble de tuples 4

Calcul d une requête Requête SQL (forme déclarative) SELECT nomr FROM robots NATURAL JOIN resultats WHERE nomc = WRC AND noml = LAAS ; Pour trouver le résultat, il faut consulter les relations stockées en mémoire secondaire. Ceci est coûteux (en temps). Comment calculer le résultat correctement et le plus efficacement possible? 5

Exemple 1 de plan R1 <- Lire séquentiellement la table Robots et sélectionner les tuples où le nom de labo est «LAAS» R2 <- Lire séquentiellement la table Resultats et sélectionner les tuples où le nom de la compétition est «WRC» R3 <- Joindre R1 avec R2 sur nomr R4 <- Projeter R3 sur nomr 6

Exemple 2 de plan R1 <- Joindre la table Robots avec la table Résultats sur nomr R2 <- Lire séquentiellement R1 et sélectionner les tuples où le nom de labo est «LAAS» R3 <- Lire séquentiellement R2 et sélectionner les tuples où le nom de la compétition est «WRC» R4 <- Projeter R3 sur nomr Ces plans sont réprésentés en algèbre relationnelle ou avec des arbres algébriques 7

Support du traitement d une requête Le traitement s appuie sur les éléments suivants : 1. Le schéma de la base, description des tables et chemins d accès (dans le catalogue) 2. Des statistiques : taille des tables, des index, distribution des valeurs 3. Des algorithmes : il peuvent différer selon les systèmes Important : on suppose que le temps d accès à ces informations est négligeable par rapport à l exécution de la requête. 8

Qu est-ce qu optimiser? Pour une même requête de nombreux arbres algébriques possibles et Pour chaque nœud, plusieurs algorithmes possibles autant de plans différents L espace des plans possibles peut être très grand Optimiser -> rechercher le «meilleur» plan dans l espace des plans possibles 9

Optimal par rapport à quoi? Temps d'exécution : temps total de traitement de la requête (throughput) Temps de réponse : temps d'obtention des premières réponses (response time) Ces deux critères dépendent du nombre de transferts réalisés avec la mémoire secondaire (donc des algos) de la taille des relations (nb tuples et attributs). 10

Estimer le coût d un plan Optimiser : trouver le plan d exécution le moins «coûteux», ou au moins éviter le pire! Fonction de coût : donne une estimation du coût total réel du plan considéré (coût E/S + coût CPU, ce dernier étant généralement négligeable). Pour cela on utilise des statistiques et des estimations. 11

Difficulté de l optimisation Trouver une bonne fonction de coût Trouver une solution dans un espace de recherche très grand : il ne faut pas que le temps d exécution de la requête en soit alourdit. Recherche non exhaustive d une bonne solution (qui semble s approcher de la meilleure) avec des heuristiques. 12

Estimer le coût d un plan Estimer le nombre d accès disque pendant l évaluation de chaque nœud de l arbre algébrique (pipeline en mémoire) ou relations temporaires (sur disque) On considère un nombre de pages disque Estimer la taille du résultat d un nœud par rapport à ses entrées (sélectivité des opérations). 13

L optimisation sur un exemple Considérons le schéma : CINEMA(Cinéma,Adresse,Gérant) S A L L E ( C i n é m a, N o S a l l e, C a p a c i t é) avec les hypothèses : 1. Il y a 300 n-uplets dans CINEMA, occupant 30 pages. 2. Il y a 1200 n-uplets dans SALLE, occupant 120 pages. 14

Expression d une requête On considère la requête : Adresse des cinémas ayant des salles de plus de 150 places En SQL : SELECT Adresse FROM CINEMA, SALLE WHERE capacité > 150 AND CINEMA.cinéma = Salle.cinéma; 15

En algèbre relationnelle Traduit en algèbre, on a plusieurs possibilités. En voici deux : Soit une jointure suivie d une sélection, ou l inverse. NB : on peut les représenter comme des arbres algébriques 16

Évaluation des coûts On suppose qu il n y a que 5 % de salles de plus de 150 places. 1. Jointure: on lit 3600 pages (120x30); Sélection : on obtient 5 % de 120 pages, soit 6 pages. Nombre d E/S: 3600 + 120 + 6 = 3726. 2. Sélection : on lit 120 pages et on obtient 6 pages. Jointure : on lit 180 pages (6x30) et on obtient 6 pages. Nombre d E/S : 120 + 6 + 180 + 6 = 312. la deuxième stratégie est de loin la meilleure! 17

Implémentation et coût des opérateurs Sélection sur R (attribut A) parcours séquentiel (scan) : nombre d accès disque en O(n) accès avec un index B+ sur A : O(log(n)) Projection de R sans élimination des doublons : O(n) avec élimination des doublons et tri : O(n log(n)) 18

Implémentations de la jointure (1) Soit T le résultat de la jointure entre R1 et R2 de condition R1.A = R2.B. Algo. boucle imbriquée : Pour chaque tuple r1 de R1 faire pour chaque tuple r2 de R2 faire si r1.a=r2.b alors T <- T + <r1,r2> fin si fin pour fin pour Coût : nombre de lectures/écritures O(n*m) 19

Implémentations de la jointure (2) Algo boucle imbriquée avec index sur R2.B Pour chaque tuple r1 de R1 faire pour chaque tuple r2 de R2 accédé avec indexr2.b(r1.a) T <- T + <r1,r2> fin si fin pour fin pour Coût si index sur R2.B : O(n*log(m)) 20

Implémentations de la jointure (3) Jointure par tri-fusion 1. - trier R1 selon l attribut de jointure A (e.g., O(n*log n)) 1. - trier R2 selon l attribut de jointure B (e.g., O(n*log n)) 2. - fusionner les relations triées (addition) Principe de la fusion pour 2 pages : indices i1 et i2 parcourant chacune des relations jusqu à la fin de page pour l un d entre eux. on compare les deux valeurs pointées par les indices si valeurs differentes on incrémente l indice correspondant à la valeur la plus basse si valeurs égales on ajoute un tuple au résultat et on increment un indice. 21

Coût des opérateurs de jointure Boucles imbriquées : nombre de lectures/écritures O(n*m) Boucles imbriquées et index sur R2.B : O(n*log(m)) Jointure par tri-fusion si relations triées O(n+m) si relations pas triées O(n*log(n) + m*log(m)) 22

Estimer la taille des résultats : Statistiques Sur les relations nombre de tuples card(r) = R nombre d attributs largeur ou degré(r) = δ(r) fraction de tuples participant à une jointure... Sur les attributs domaine valeurs max et min, nombre de valeurs distinctes distribution des valeurs Hypothèses usuelles : indépendance des valeurs d attributs, distribution uniforme de ces valeurs dans leur domaine. 23

Taille des relations intermédiaires Soit R une relation taille(r) = card(r)*largeur(r) ou R * δ(r) SELECTION : le nombre de tuples du résultat = card(r) * estimation de la sélectivité (pourcentage de lignes concernées) du prédicat de sélection. 24

Taille des relations intermédiaires Si la sélection est composée de plusieurs conditions : sélectivité d une conjonction = produit des sélectivités sélectivité d une disjonction : somme des sélectivités moins leur produit. PROJECTION : nombre de tuples inférieur ou égal à card(r). 25

Taille des relations intermédiaires Taille d une JOINTURE R et S card(r) * card(s) * estimation sélectivité de la jointure Cas particulier d une condition R.A=S.B où A est clé de R et B clé étrangère de S card(s) 26

Heuristiques pour la recherche d un plan d exécution Il y a des opérations plus ou moins coûteuses sélectives. Effectuer d abord les opérations les moins coûteuses et les plus sélectives pour diminuer la taille des entrées des opérations plus coûteuses comme la jointure. Heuristique descendre au maximum les sélections, puis les projections via transformation (équivalences algébriques) privilégier les conjonctions (AND) car elles réduisent plus la taille des résultats que les disjonctions (OR) 27

Equivalences algébriques 28

Equivalences algébriques 29

L essentiel de ce qu il faut savoir Pour une requête, le système a le choix entre plusieurs plans d exécution. Ils diffèrent par l ordre des opérations, les algorithmes, les chemins d accès. Pour chaque plan on peut estimer : le coût de chaque opération la taille du résultat Objectif : diminuer le plus vite possible la taille des données manipulées 30

Laissons le choix au système! Bon à savoir : l imbrication de requêtes réduit les possibilités d optimisation. Exemple : cherchons tous les films avec James Stewart, parus en 1958. SELECT titre FROM Film f, Role r, Artiste a WHERE a.nom = Stewart AND a.prenom= James AND f.idfilm = r.idfilm AND r.idacteur = a.idartiste AND f.annee = 1958 Pas d imbrication : un bloc, OK! 31

Seconde requête (2 blocs) La même, mais avec un niveau d imbrication. SELECT titre FROM Film f, Role r WHERE f.idfilm = r.idfilm AND f.annee = 1958 AND r.idacteur IN (SELECT idartiste FROM Artiste WHERE nom= Stewart AND prenom= James ) Une imbrication sans nécessité : moins bon! 32

Troisième requête (2 blocs) La même, mais avec EXISTS au lieu de IN. SELECT titre FROM Film f, Role r WHERE f.idfilm = r.idfilm ANDf.annee = 1958 AND EXISTS (SELECT x FROM Artiste a WHERE nom= Stewart AND prenom= James AND r.idacteur = a.idartiste) 33

Quatrième requête (3 blocs) La même, mais avec deux imbrications : SELECT titre FROM Film WHERE annee = 1958 AND idfilm IN (SELECT idfilm FROM Role WHERE idacteur IN (SELECT idartiste FROM Artiste WHERE nom= Stewart AND prenom= James )) Très mauvais : on force le plan d exécution, et il est très inefficace. 34

Pourquoi c est mauvais On parcourt tous les films parus en 1958 Pour chaque film : on cherche les rôles du film, mais pas d index disponible Ensuite, pour chaque rôle on regarde si c est James Stewart Ca va coûter cher!! 35

Conclusion Il faut connaître les grandes lignes du processus d évaluation d une requête, sachant que pour des raisons de performances (tuning) il faudra peut-être étudier très en détail les algos. L optimisation de requêtes est un problème difficile qui est toujours d actualité car les types de requêtes évoluent et il faut trouver de nouvelles techniques (OLAP, PicoDBMS, Linked Data) les modèles de BD changent (xml, rdf...) 36

37

38