Optimisation des requêtes

Slides:



Advertisements
Présentations similaires
26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Advertisements

L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Bases de Données Avancées: Bases de Données Relationnelles
Contrôle de la concurrence
Structures de données avancées : Principales structures de fichiers
Évaluation des requêtes relationnelles
Évaluation des requêtes relationnelles
Règles d’association.
SQL - Subtilités.
STS2 - Révision des requêtes de sélection2/9/2003 Forme d'une requête de Sélection nSELECT nFROM nWHERE nGROUP BY nHAVING nORDER BY.
Fonctionnalités des SGBD
Witold Litwin Structures physiques Witold Litwin
Algèbre relationnelle
Optimisation algébrique de requêtes relationnelles
Techniques dindexation Implémentation du modèle relationnel ~ LIF10: Fondements des bases de données relationnelles.
Les requêtes Manière de dialoguer avec une base de donnée pour :
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
Optimisation de Requêtes
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Optimisation de Requêtes
Sélection automatique d’index et de vues matérialisées
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
Contrôles d'accès aux données
LE LANGAGE SQL Langage de manipulation de données (LMD)
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
Algèbre relationnelle
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
1 Evaluation des Operations Relationnelles Chapitre 14, Section 14.4.
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
Optimisation des Requêtes Relationnelles
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 Survol du Stockage et de lIndexage Chapitre 8. 2 Objectifs Stockage persistant Organisation des fichiers Fichiers de données Fichiers dindexes Operations.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Évaluation des Requêtes: Survol Chapitre 12.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
Manipulation des données Requêtes simples
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Initiation aux bases de données et à la programmation événementielle
Algèbre Relationnelle : Implémentation
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Module 7 : Utilisation de requêtes élaborées
Sélection de colonnes (la projection)
22/04/2015© Robert Godin. Tous droits réservés.1 10 Évaluation des requêtes relationnelles n SQL – QUOI n Évaluateur de requêtes du SGBD – COMMENT – en.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
1 Survol du Stockage et de l’Indexage Chapitre 8.
Structures de données avancées : Principales structures de fichiers
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Complément sous-requêtes
Cours n°2 Implémentation et exploitation
Traitement et optimisation de requêtes
Amin Mesmoudi. Les Besoins LSST en stockage et accès aux données (1/2) Stockage: 2 TableTaille#enregistrements#colonnes (arité) Object109 TB38 B470 Moving.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Langage de manipulation de données (LMD)
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
Transcription de la présentation:

Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr

Traitement des requêtes Analyseur de requête Arbre de requête Optimiseur de requêtes Générateur de plans Evaluateur de plans Plan d’exécution

Opérateurs - Sélection - Projection - Jointure - Agrégations Composition des opérateurs Techniques : Itération Index Partitionnement

Sélection Sans index, non trié : O(N) Sans index, trié : O(log2(N)) - en général, rangement par index Index : groupant non-groupant (coûteux) Hachage : recherche avec une égalité Cas général : inefficace pour la disjunction

Projection - Collection des attributs - Suppression des duplications coûteux, seulement pour select distinct Tri Hachage (double) Index itération * Clé de recherche : combinaison de tous les attributs

Jointure Opération la plus coûteuse Catégories d’implémentation : Double itération Tri-fusion Hachage

Evaluation de la jointure Coût = Nb de pages entrée/sortie Relation page fichier R Pr n-uplets M pages S Ps n-uplets N pages Exemple R = 1000, Pr = 100 S = 500, Ps = 80 * chaque page entrée/sortie 10 ms

Jointure par double itération Naïve Pour chaque r dans R pour chaque s dans S si r.X = s.X alors (r,s) dans Res Coût : M + Pr*M*N R : relation externe, S : relation interne 140 heures pour l’exemple !

Jointure par double itération page à page Pour chaque page pr dans R pour chaque page ps dans S faire pr join ps dans Res Coût : M + M*N * Relation externe plus petite 501,500 pages : 1,4 heures pour l’exemple !

Jointure par double itération bloc à bloc RAM contient B+2 pages Pour chaque Bloc Br de B pages dans R pour chaque page ps dans S faire Br join ps dans Res Coût : M + N*(M/B) Si B = 100, alors 6000 pages : 1 minutes pour l’exemple !

Jointure par double itération avec index Pour chaque r dans R chercher s par index dans S si r.X = s.X alors (r,s) dans Res Coût : type d’index sélectivité En général, moins coûteuse que double itération page à page

Applications de tri dans SGBD - Order by - Création d’index - élimination de duplication - jointure Tri externe : tri-fusion + tri rapide interne

Jointure par tri-fusion Trier R sur X; Trier S sur X Tri-fusionner R et S sur X Coût : M*logM + N* logN+ (M + N)

Jointure par hachage Coût : 2* (M + N) + (M + N) Etape 1 : hachage de R sur X et hachage de S sur X avec fonction h Etape 2 : Pour chaque groupe Gr de R Hachage de Gr avec une autre fonction g groupe Gs (correspond Gr)join Gr en utilisant g Coût : 2* (M + N) + (M + N)

Opérations d’agrégat - Parcours + mise à jour des variables adaptées SUM : total AVG : total + comptage … - GROUP BY Trier sur les attributs de groupement Créer un table de hachage dans RAM

Optimisation - Analyseur - Arbre de requête - Réécriture de l’arbre descendre les projection descendre les sélection - Génération de plan d’exécution choix des méthodes enchaînement ou matérialisation

Sous-requête imbriquée Select S.A From S Where S.B In (Select R.B From R Where R.C = c) Select S.A From S, R Where S.B = R.B And R.C = c

Sous-requête corrélées Select S.A From S Where Exists (Select * From R Where R.C = c And S.B = R.B) Select S.A From S, R Where S.B = R.B And R.C = c

Optimisation et sous-requête - Optimisation locale - Manque de connaissance d’équivalence Donc, optimisation par l’utilisateur

Réécriture - traitement des agrégats - relation externe à gauche - gauche- profond style pour la jointure de plusieurs relations - descendre la sélection et la projection

Traitement des agrégats Select S.A, Min(T.C) From T, S, R Where S.B = R.B And T.D = S.D And S.C = c Group By S.A Having Count (*) = 2; Projection S.A, Min(T.C) ( Having_Count(*)=2( Group_By S.A( Selection S.B = R.B, T.D = S.D, S.C = c( R*S*T)))); Projection S.A, T.C ( Selection S.B = R.B, T.D = S.D, S.C = c( R*S*T)); Optimiseur