1 Evaluation des Operations Relationnelles : Algorithmes Additionnels Chapitre 14, 14.1--14.3, 15.5-14.7.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
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é.
Évaluation des acquis des élèves en français et en mathématiques CE1 et CM2 Claude MOINE Chargé de mission SI1D 01/09.
Évaluation des requêtes relationnelles
Règles d’association.
Chapitre 4 – Page 2 4- Codes-barres et inventaires Menu daccès Codes-barresInventaires Table des matières.
ACCES AUX RESSOURCES RESEAU INTERNET
1 V- Perception de la communication Novatest Degré dinformation sur le tri sélectif Q19. De façon générale, estimez-vous être bien informé sur le.
Optimisation algébrique de requêtes relationnelles
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
IN302 – Chapitre 1 Notions de base, connexité. Rappels sur la complexité
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
La gestion de fichiers Le travail sur un ordinateur pour traiter des données aboutit à la création de fichiers qui peuvent devenir nombreux. Pour pouvoir.
XT-SOFT SQL-TUNE. 2 Menu dAccueil 3 Sélection des Statistiques Maintenant allons sur Statistics : PF4 04 par PF4 ou en entrant dans Enter option : la.
La comparaison des options mutuellement exclusives
Chap 4 Les bases de données et le modèle relationnel
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Algorithmique et Programmation
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Hiérarchie de la mémoire
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
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.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
Indexes à Arbres et Indexes à Hachage
Chapitre 6 (Silberchatz)
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.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
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.
Indexes à Arbres et Indexes à Hachage
Universté de la Manouba
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Les Algorithmes de Tri Introduction Tri par Sélection
2 Analyse et Optimisation des Performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France.
OPTIMISATION DE BASE DE DONNEES ORACLE
Limiter et trier des données
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
Algèbre Relationnelle : Implémentation
Automne 2002Préparé par Guy Grégoire 1 La gestion de projet Gestion des opérations Chapitre 13.
Gestion des fichiers et dossiers
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
GF-11: Tri Interne Efficace et Tri Externe
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
1 Survol du Stockage et de l’Indexage Chapitre 8.
Claude MOINE Chargé de mission SI1D 01/10. Adresse de connexion à l’application Claude MOINE Chargé de mission SI1D 01/10.
Structures de données avancées : Principales structures de fichiers
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
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,
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Introduction Module 1.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Tri Externe Chapitre 13: 13.1—13.5
Transcription de la présentation:

1 Evaluation des Operations Relationnelles : Algorithmes Additionnels Chapitre 14, ,

2 Sélections: Utilisation dun Index Le coût dépend du # de tuples qualifiés et du groupement: Le coût (généralement petit) pour trouver les entrées de données qualifiées, plus le coût (généralement significatif) pour retrouver les enregistrements. En supposant une distribution uniforme des noms, environ 10% des tuples sont qualifiés pour une sélection de la forme « rname < C» (i.e. 100 pages, tuples). Avec un index groupé, le coût est moins que 100 I/Os; avec un index non groupé, le coût peut aller jusquà I/Os! Amélioration importante pour les indexes non groupés: 1. Trouver les entrées de données (rappel rid = ). 2. Trier les rid s des enregistrement de données à extraire selon la composante page_id. 3. Puiser les rids dans lordre des page_id s. Ceci garantit que chaque page emmenée en mémoire permet datteindre les tuples qualifiés lun après lautre.

3 Approches pour Sélections Générales Première approche: Trouver le chemin daccès le plus sélectif, extraire les tuples utilisant ce chemin et appliquer les termes restants qui ne correspondent pas au chemin daccès: chemin daccès le plus sélectif: un index ou un scannage qui, selon une estimation, requiert le moins daccès au disque. Les termes qui correspondent à cet index réduisent le nombre de tuples extraits; dautres termes sont utilisés pour éliminer quelques tuples extraits, mais naffectent pas le nombre de pages extraites du disque. Considérons day pourrait être utilisé; day<8/9/94 doit alors etre validé.

4 Approches pour Sélections Générales (Suite) Seconde approche (Si nous avons 2 ou plusieurs indexes correspondants à la condition qui utilisent les alternatives (2) ou (3) des entrées de données): Obtenir lensembles de rid s des enregistrements des données en utilisant chaque index correspondant à la condition. Ensuite calculer lintersection de ces ensembles de rid s. Extraire les enregistrements du disque et appliquer les termes restants. Considérons day<8/9/94 AND bid=5 AND sid=3. Si nous avons un index à arbre B+ sur day et un index sur sid utilisant lalternative (2), nous pouvons extraire les rid s des enregistrements qui satisfont day<8/9/94 en utilisant le premier index, ensuite les rid s des enregistrements qui satisfont sid=3 en utilisant le deuxième index, calculer lintersection, et appliquer le terme bid=5.

5 Projection Algorithme basé sur le tri: Scanner R afin de produire des tuples qui contiennent seulement les attributs désirés. Trier lensemble de tuples résultant de la première étape en utilisant la combinaison de tous ses attributs comme clé de tri. Scanner le résultat de la deuxième étape en comparant les tuples adjacent afin déliminer les duplicatas. Coût: O(MlogM) Ce coût est essentiellement le fait de la deuxième étape. SELECT DISTINCT R.sid, R.bid FROM Reserves R

6 Projection (Suite) Une amélioration de lapproche basée sur le tri: Modifier le passage 0 du tri externe afin déliminer les valeurs des colonnes ne figurant pas sur la liste de projection. En fait les tuples dans les runs sont plus petits que les tuples originaux; et leur taille dépend du nombre et de la taille des valeurs des colonnes éliminées.) Modifier les passages de fusion afin déliminer les duplicatas. Coût: Passage 0: lecture de la relation originale (de taille M), écriture du même nombre de tuples. Passages > 0: peu de tuples écrits à chaque passage.

7 Projection (Suite) Une approche basée sur le hachage: Partition: Lire R en utilisant un tampon dentrée. Pour chaque tuple, éliminer les valeurs des colonnes ne figurant pas sur la liste de projection, applique une fonction de hachage h1 afin de choisir un des B-1 tampons de sortie. Le résultat sera B-1 partitions (de tuples sans les champs indésirables). La méthode garantit que 2 tuples de différentes partitions sont distincts. Elimination des duplicatas: lire chaque partition et en construire une table de hachage en mémoire principale en utilisant une fonction de hachage h2 (différente de h1 ) ayant comme entrée tous les champs du tuple; éliminer les duplicatas en passant. Appliquer la méthode récursivement si la partition est trop grande. Coût: Partition: lire R, écrire chaque tuple de R amputé des champs indésirables Elimination des duplicatas: lecture de tuples générés par la partition.

8 Projection (Suite) Les algorithmes basés sur le tri sont standard. Ils sont supérieurs au hachage si lon a beaucoup de duplicatas lorsque la distribution des valeurs de hachage nest pas uniforme Le résultat est trié ! Si un index sur la relation contient tous les attributs de la liste de sélection dans sa clé de recherche, nous pouvons opérer un scannage de lindex (« index-only scan »). Cette méthode applique la projection sur les entrées de données sans jamais recourir aux données elles-mêmes. Si un index à arbre contient tous les attributs des attributs désirés comme préfixe de la clé de recherche, nous pouvons faire mieux encore: Extraire les entrées de données dans lordre (en appliquant la méthode « index-only scan ») en éliminant les champs indésirables; enfin comparer les tuples adjacents pour éliminer les duplicatas.

9 Opérations Ensemblistes Intersection et produit Cartésien: cas spéciaux du join Intersection: un join avec égalité sur toutes les colonnes Produit Cartésien: un join sans condition Union de R et S: Algorithme basé sur le tri: Trier les deux relations (en combinant tous les attributs). Scanner les relations triées simultanément et les fusionner, en éliminant les duplicatas. Amélioration: produire des runs triés de R et S et les fusionner simultanément. Différence (R – S): Pendant la fusion, sortir les tuples de R qui napparaissent pas dans S.

10 Opérations Ensemblistes (Suite) Union de R et S: Algorithme basé sur le hachage: Partition de R et S en utilisant une fonction de hachage h. Traiter chaque partition l de S comme suit: Construire une table de hachage pour la partition l en mémoire en utilisant h2, différent de h1. Scanner la partition correspondante l de R, et pour chaque tuple de cette partition, chercher le tuple correspondant dans la partition l de S en utilisant h2. Si le tuple est dans la table de hachage, léliminer, sinon, ly inscrire. Sortir la table de hachage et réinitialiser celle en mémoire pour la prochaine partition de S. Différence (R – S): Scanner la partition l de R comme ci-dessus, et pour chaque tuple de cette partition, chercher le tuple correspondant dans la partition l de S en utilisant h2. Si le tuple nest pas dans la table de hachage, le sortir dans le résultat, sinon, léliminer.

11 Operations dAgrégat AVG, MIN, COUNT, MIN, MAX Sans GROUP BY: En général, un scannage de la relation est requis. Sil existe un index dont la clé de recherche contient tous les attributs dans les clauses SELECT ou WHERE, on peut utiliser la méthode « index-only scan ».

12 Operations dAgrégat ( Suite ) Avec GROUP BY: Trier la relation en utilisant les attributs de GROUP BY, ensuite scanner la relation et calculer lagrégat pour chaque groupe. (Amélioration: combiner le tri et le calcul de lagrégat.) Sil existe un index à arbre dont la clé de recherche contient tous les attributs dans les clauses SELECT, WHERE et GROUP BY, on peut utiliser la méthode « index-only scan »; Si les attributs de GROUP BY forment un préfix de la clé de recherche, nous pouvons extraire les entrees de donnees/tuples dans lordre dicté par GROUP BY. Une approche basée sur le hachage existe aussi; elle est similaire aux algorithmes des opérations précédentes.

13 Résumé Une implémentation soigneusement faite des operateurs de lalgèbre relationnelle est très importante. En général, plusieurs algorithmes alternatifs existent pour chaque operateur et aucun deux nest universellement supérieur aux autres. Ainsi donc, toutes les alternative disponibles doivent être considérées pendant lexécution dune requête afin de choisir la meilleure alternative pour chaque cas despèce.