Cours Bases de données



Documents pareils
Évaluation et optimisation de requêtes

Le Langage De Description De Données(LDD)

TP Bases de données réparties

Les bases de données

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

Le langage SQL Rappels

INTRODUCTION AU DATA MINING

Le Langage SQL version Oracle

Optimisation SQL. Quelques règles de bases

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

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

Cours Bases de données

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Du 10 Fév. au 14 Mars 2014

1 Introduction et installation

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

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

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

Langage SQL : créer et interroger une base

Administration de Bases de Données : Optimisation

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

Bases de données cours 1

Structure fonctionnelle d un SGBD

16H Cours / 18H TD / 20H TP

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

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

Bases de Données. Plan

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

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

Cours Bases de données 2ème année IUT

Dossier I Découverte de Base d Open Office

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

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

Administration des bases de données relationnelles Part I

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

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

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

Bases de données et sites WEB

I4 : Bases de Données

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

Bases de données élémentaires Maude Manouvrier

Administration des bases de données. Jean-Yves Antoine

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

données en connaissance et en actions?

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

A QUOI SERVENT LES BASES DE DONNÉES?

Année Universitaire 2009/2010 Session 2 de Printemps

Optimisations des SGBDR. Étude de cas : MySQL

Bases de données avancées Introduction

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

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Audit et optimisation MySQL 5

Introduction aux SGBDR

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

SYSTÈME DE GESTION DE FICHIERS

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

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

COURS de BASES de DONNEES

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

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

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

Chap. 2: L approche base de données

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Introduction aux Bases de Données Relationnelles Conclusion - 1

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

Cours 1 : introduction

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

SOMMAIRE. Travailler avec les requêtes... 3

Évaluation et implémentation des langages

2 Serveurs OLAP et introduction au Data Mining

Systèmesdegestionde. basesdedonnées

CESI Bases de données

Bases de données relationnelles

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

Techniques d optimisation des requêtes dans les data warehouses

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

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

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

Conception d une base de données

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

SQL Server 2012 et SQL Server 2014

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

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

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

Gestion des utilisateurs et de leurs droits

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

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

Systèmes d information et bases de données (niveau 1)

Programmation parallèle et distribuée (Master 1 Info )

Bases de données. Chapitre 1. Introduction

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

Programmation parallèle et distribuée

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

Compte-rendu de projet de Système de gestion de base de données

Transcription:

Cours Bases de données Optimisation 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Méthodes d optimisation des requêtes 1. Introduction 2. Étude des coûts 3. Optimisation 3.1. Utilisation d heuristiques 3.2. Évaluation systématique 3.3. Optimisation dans Oracle Étapes de traitement des requêtes Introduction Requête en langage de haut niveau IDENTIFICATION, ANALYSE ET VALIDATION Forme intermédiaire de la requête OPTIMISEUR DE REQUÊTE Plan d'exécution GÉNÉRATEUR DU CODE DE LA REQUÊTE Code d'exécution de la requête PROCESSEUR D'EXÉCUTION DE LA BASE DE DONNÉES Scanneur Parseur Validation Arbre de requête } Optimisation } Exécution Langage de requête de bas niveau Le programmeur a la charge complète de l optimisation des requêtes Langage de requête de haut niveau Possède des systèmes dédiés à l optimisation des requêtes Le programmeur peut souvent donner des indications ( hints ) Résultat de la requête 3 4

Introduction Introduction Deux grandes techniques d optimisation Recherche du meilleur plan d exécution Coût excessif Utilisation de règles heuristiques Ré-ordonnent les opérations dans les arbres de requêtes Recherche d une solution approchée à un coût raisonnable Par heuristiques Par estimation approximative des coûts Évaluation systématique des coûts Choix du plan d exécution le moins coûteux Un optimiseur de requête combine généralement ces deux techniques Un optimiseur de requête combine généralement ces deux techniques 5 6 Méthodes d optimisation des requêtes Analyse des coûts Opérations de tri Algorithme le plus utilisé : le tri-fusion 1. Introduction 2. Étude des coûts 3. Optimisation 3.1. Utilisation d heuristiques 3.2. Évaluation systématique 3.3. Optimisation dans Oracle 1. Phase de tri de petits sous-fichiers 2. Fusion triée des sous-fichiers triés Phase de tri Ex : Fichier de b=1024 blocs ; espace tampon de nb=5 blocs -> nr=205 runs initiaux (205 sous-fichiers triés) Phase de fusion Ex : 4 sous-fichiers triés -> 52 = 205/4, puis 13, puis 4, puis 1 Coût total : (2. b) + (2. (b. (logdm nr))) Nb d accès de blocs (lect. et écriture) Nb d accès de blocs pour la phase de fusion 8

Analyse des coûts : tri-fusion Analyse des coûts : tri-fusion Étape tri nombre de groupes =! B T /M" =! 12 /3" = 4 Coût = 2 * (! B T /M" * TempsPosDébut + B T * TempsTrans) = 104 ms Lecture 15 4 3 Lecture 9 18 12 Lecture 16 2 5 Lecture 7 14 6 Création de 12/3 = 4 groupes 3 4 15 9 12 18 2 5 16 6 7 14 3 4 9 12 15 18 2 5 6 7 14 16 2 3 4 5 6 7 9 12 14 15 16 18 Passe de fusion #1 produit 4/2 = 2 groupes Passe de fusion #2 produit 2/2 =1 groupe Ecriture 3 4 15 Ecriture 9 12 18 Ecriture 2 5 16 Ecriture 6 7 14 Coût des passes de fusion = B T*(2*log M-1 (B T /M)-1) * TempsESBloc = 12*(2*log 2 (12 /3)-1) *11ms = 396 ms Analyse des coûts : tri-fusion Analyse des coûts : tri-fusion TempsES (TRI) = Estimation du coût d un tri-fusion (FBM = 20) 2*(B T /M* TempsPosDébut + B T*TempsTrans) + B T*(2*log M-1 (B T /M)-1) * TempsESBloc = 104 ms + 396 ms = 500 ms N = nb d enregistrements M = Taille de la mémoire centrale disponible en nombre de blocs

Analyse des coûts Opérations de SELECTION Responsabilité du scanneur de fichiers Scrute les enregistrements d un fichier pour extraire ceux qui satisfont à une condition de sélection Plusieurs méthodes de recherche Test d égalité : Si index : parcours d index Recherche linéaire (force brute) Recherche binaire si attribut clé sur lequel le fichier est trié Utilisation d un index primaire ou d une clé de hachage Utilisation d un index secondaire (arbre-b+)... Sélections complexes (conjonction, disjonction,...) Analyse des coûts Opérations de JOINTURE Opération très coûteuse Plusieurs méthodes de jointure Utilisation de boucles imbriquées (force brute) Une seule boucle si index ou clé de hachage sur l autre attribut Par tri-fusion préalable sur les deux attributs Par jointure-hachage et variantes Grande influence de l espace tampon disponible Analyse des coûts Opérations de PROJECTION et opérations sur les ensembles Projection Simple si la liste des attributs de projection inclut une clé. Sinon, problème des doublons Produit cartésien Potentiellement très coûteux. À éviter. Analyse des coûts Traitement par flot ou par pipe-line Il faut éviter les lourds stockages intermédiaires Traitement par flot On utilise le résultat partiel d une opération immédiatement dans les opérations qui suivent Union / Intersection / Différence Même ensemble d attributs sur chaque table Souvent des techniques par tri-fusion

Méthodes d optimisation des requêtes Utilisation d heuristiques Arbre de requête ( query tree ) 1. Introduction 2. Étude des coûts 3. Optimisation 3.1. Utilisation d heuristiques 3.2. Évaluation systématique 3.3. Optimisation dans Oracle structure de données arborescente visualise graphiquement une requête relationnelle traduite en une expression équivalente de l algèbre relationnelle Feuilles : tables utilisées dans la requête Noeuds intermédiaires : opérations algébriques Noeud racine : dernière opération algébrique avant le retour du résultat L opération d un noeud intermédiaire est déclenchée quand ses opérandes sont disponibles. On remplace alors le noeud par la relation produite par l opération. Utilisation d heuristiques Arbre de requête π NO P, NUMS, NOMS, ADRESSE, DNAISS (((σ EMPL P= MEYZIEU (P ROJET )) NUMS=NoS (SERV ICE) NoSSDIR=NoSS (EMP LOY E)) π NO P, P.NUMS, E.NOMS, E.ADRESSE, E.DNAISS Utilisation d heuristiques Arbre de requête Première étape du processus de traduction et d exécution Vérification de l existence des tables Vérification de l existence des attributs Vérification des droits d accès de l utilisateur S.NoSSDIR=E.NoSS P.NUMS=S.NoS σ P.EMPL P= MEYZIEU SERVICE EMPLOYE On va ensuite optimiser l arbre de requête PROJET

Utilisation d heuristiques Optimisation de l arbre de requête Plans d exécution équivalents Plusieurs arbres algébriques équivalents Recherche d expressions algébriques équivalentes Optimisation par : Utilisation de la commutativité de certains opérateurs Conservation des seuls attributs nécessaires aux opérations ultérieures " titre, descripteur! ISBN = 1-111-1111-1 " titre, descripteur! ISBN = 1-111-1111-1 Utilisation d un ensemble de règles de transformation par l optimiseur Plans d exécution équivalents Règles d équivalence de l algèbre relationnelle Plans d exécution équivalents Règles d équivalence de l algèbre relationnelle (suite)! Eclatement d'une sélection conjonctive (SE)! e1 ET e2 (T) =! e1 (! e2 (T))! Commutativité de la sélection (SC)! e1 (! e2 (T)) =! e2 (! e1 (T))! Elimination des projections en cascades (PE) " liste1 (" liste2 (T)) = " liste1 (T)! Commutativité de la jointure (JC) T 1 # T 2 = T 2 # T 1! Associativité de la jointure (JA) T 1 # (T 2 # T 3 ) = (T 1 # T 2 ) # T 3! Commutativité restreinte de la sélection et de la jointure (CSJ)! e (T 1 " T 2 ) =! e (T 1 ) " T 2! si l'expression de sélection e ne contient que des colonnes de T 1! Commutativité restreinte de la projection et de la sélection (CPS) # listecolonnes (! e (T)) = # listecolonnes (! e (# listecolonnes $ colonnes de e T))! Commutativité restreinte de la projection et de la jointure (CPJ) # listecolonnes (T 1 " T 2 ) = # listecolonnes (# listecolonnes % colonnes de T1 (T 1 ) " # listecolonnes % colonnes de T2 (T 2 ))! etc.

Plans d exécution équivalents Pour chaque opération logique : plusieurs choix d opérations physiques Utilisation d heuristiques Optimisation de l arbre de requête En règle générale : placer les opérateurs de projection et de sélection le plus près possible des feuilles " titre, descripteur (Balayage)! ISBN = 1-111-1111-1 (Balayage) (Jointure par tri-fusion) " titre, descripteur (Balayage)! ISBN = 1-111-1111-1 (Balayage) (Jointure par BIM) " titre, descripteur (Balayage)! ISBN = 1-111-1111-1 (Balayage) (Jointure par hachage) Fusionner plusieurs sélections sur une même table en une seule afin que le prédicat de sélection ne soit testé qu une seule fois Effectuer les sélections le plus tôt possible afin de réduire la taille des tables intermédiaires (le plus près des feuilles) Effectuer les projections le plus tôt possible, mais jamais avant les sélections (réduisent le nombre de colonnes et, souvent, le nombre de tuples) Placer les opérateurs de jointure le plus près possible du noeud racine à cause du coût de leur évaluation (il devrait y avoir moins de tuples et de colonnes près de la racine). Méthodes d optimisation des requêtes Complète l utilisation d heuristiques 1. Introduction 2. Étude des coûts 3. Optimisation 3.1. Utilisation d heuristiques 3.2. Évaluation systématique 3.3. Optimisation dans Oracle Il faut évaluer le plus précisément des stratégies alternatives tout en limitant le coût de l optimisation elle-même. Surtout utilisée dans les requêtes compilées Une évaluation des coûts est conservée dans le catalogue du SGBD Coût d accès à un type de stockage secondaire (souvent le plus important) Coût de calcul Coût d usage de la mémoire Coût des communications

Une évaluation des coûts est conservée dans le catalogue du SGBD Une évaluation des coûts est conservée dans le catalogue du SGBD Exemple d informations stockées : Nombre d enregistrements (tuples) d un fichier Taille moyenne des enregistrements Nombre de blocs Facteur de blocage du fichier (nb max d enregistrements par bloc) Méthode d accès primaire Attributs d accès primaire de chaque fichier Informations sur tous les index secondaires et attributs d indexation Nombre de blocs de l index de plus haut niveau... Certaines valeurs ont besoin d être remises à jour fréquemment : E.g. nombre d enregistrements d un fichier d autres, non E.g. nombre de niveaux d un index hiérarchique Exemple d utilisation des fonctions de coût Exemple 2 d utilisation des fonctions de coût " titre, descripteur (Balayage TempsES = 11 ms)! titre, descripteur (Balayage TempsES = 11 ms) (Ecriture du résultat TempsES = 11 ms)! ISBN = 1-111-1111-1 (Balayage TempsES = 92 314 ms) (Ecriture du résultat TempsES = 846 164 ms) (Jointure par tri-fusion TempsES = 2 873 540 ms) Coût total = 3 812 040 ms TempsES(Plan avec pipeline) = TempsES (JTF! ) = 2 873 540 ms (Boucle imbriquée par index secondaire sur code de la table interne TempsES = 44ms) (Ecriture du résultat TempsES = 11 ms) (Ecriture du résultat TempsES = 11ms) " ISBN = 1-111-1111-1 (Sélection par index secondaire sur ISBN TempsES = 55ms) Coût total = 132ms TempsES(Plan avec pipeline) = TempsES(S=IS pour index sur ISBN) + N! ISBN=1-11-111-1111 () ) = 55 ms + 33 ms = 88 ms * TempsES(S=IS sur code de

Estimation de la taille du résultat d une opération Exemple d estimation de la taille d une projection! Taille d'une sélection! Sel T (Expression de sélection)/ FBM T " blocs! Taille d'une projection N # liste(t) = N T si contient une clé candidate N # C(T) = Card T (C) pour une colonne N # C1,C2,,Cn(T) = k(1-(1-1/k) NT )! k = $ i=1,..,n Card T (C i )! Taille d'une jointure naturelle N R % S = N R * N S / maximum(card R (cléjointure), Card S (cléjointure)) SELECT DISTINCT code, annéeparution FROM ; N 1 000 000 FBM 20 Card (code) 4 000 Card (annéeparution) 50! k =! i=1,..,n Card T (C i )! = Card (code) * Card (annéeparution)! = 4 000 * 50 = 200 000! N " code,annéeparution(t) = k(1-(1-1/k) N )! = 198 652 lignes (en arrondissant) Méthodes d optimisation des requêtes 1. Introduction 2. Étude des coûts 3. Optimisation 3.1. Utilisation d heuristiques 3.2. Évaluation systématique 3.3. Optimisation dans Oracle Optimisation dans Oracle Oracle propose deux approches différentes L une basée sur des règles L autre sur les coûts Approche basée sur des règles Opérations classées selon une heuristique Considère 15 types d accès différents (depuis force brute à ROWID) Approche basée sur les coûts Calcule le coût des stratégies en fonction des besoins en E/S, temps processeur, mémoire nécessaire Possibilité d intervention du développeur d application Peut fournir des hints (si il a des informations que n a pas le SGBD)

Optimisation dans Oracle Optimisation dans Oracle Oracle : mode RULE Rang Chemin d'accès 1 Sélection par ROWID 2 Sélection d'une ligne par jointure dans une organisation par index groupant ou hachage hétérogène (CLUSTER) 3 Sélection d'une ligne par hachage sur clé candidate (PRIMARY ou UNIQUE) 4 Sélection d'une ligne par clé candidate 5 Jointure par une organisation par index groupant ou hachage hétérogène (CLUSTER) 6 Sélection par égalité sur clé de hachage (HASH CLUSTER) 7 Sélection par égalité sur clé d'index groupant (CLUSTER) 8 Sélection par égalité sur clé composée 9 Sélection par égalité sur clé simple d'index secondaire 10 Sélection par intervalle borné sur clé indexée 11 Sélection par intervalle non borné sur clé indexée 12 Tri-fusion 13 MAX ou MIN d'une colonne indexée 14 ORDER BY sur colonne indexée 15 Balayage!Cas Oracle outils!explain PLAN!SQL Trace!SQL Analyse (Enterprise Manager Tuning Pack)!Oracle EXPERT Exercices