Tri Externe Chapitre 13: 13.1—13.5

Slides:



Advertisements
Présentations similaires
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é.
Advertisements

Witold Litwin Structures physiques Witold Litwin
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 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.
1 Evaluation des Operations Relationnelles : Algorithmes Additionnels Chapitre 14, ,
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.
Indexes à Arbres et Indexes à Hachage
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
GF-11: Tri Interne Efficace et Tri Externe
1 Survol du Stockage et de l’Indexage Chapitre 8.
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,
A la fin de ton année de 4 ème, tu dois être capable d’utiliser parfaitement un Mais d’abord qu’est-ce qu’un TABLEUR ? ???? TABLEUR- GRAPHEUR Page suivante.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Active Learning for Natural Language Parsing and Information Extraction, de Cynthia A. Thompson, Mary Elaine Califf et Raymond J. Mooney Philippe Gambette.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
1 Case Study 1: UNIX and LINUX Chapter History of unix 10.2 Overview of unix 10.3 Processes in unix 10.4 Memory management in unix 10.5 Input/output.
Suites ordonnées ou mettre de l’ordre
Formation relative à la ligne directrice GD211
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Les Instructions Itératives (Les Boucles)
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Bases de données multimédia
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
INFO 2014 Fichiers et base de données
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Base de données: Généralité IFT6800 Jian-Yun Nie.
Techniques de décomposition
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
IDL_IDL bridge The IDL_IDLBridge object class allows an IDL session to create and control other IDL sessions, each of which runs as a separate process.
Introduction Bases de données Accès Internet (Web)
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Technologies de l’intelligence d’affaires Séance 11
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Cyber-Sphinx Séance 2.
Contrôle de l’Accès Simultané
Gestion des Transactions: Survol
ACP Analyse en Composantes Principales
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Contrôle de l’Accès Simultané
6. CONCEPTION PHYSIQUE RELATIONNELLE
© Robert Godin. Tous droits réservés.
Introduction à la Grille
World Health Organization
Indexes à Arbres et Indexes à Hachage
4. IMPLEMENTATION DES STRUCTURES DE DONNEES
1-1 Introduction to ArcGIS Introductions Who are you? Any GIS background? What do you want to get out of the class?
BUFFER CIRCULAIRE Meryem EL BAKRI. PLAN Introduction Buffer circulaire Fonctionnement.
Info Bases de données avancées
Algèbre Relationnelle
Information, Calcul, Communication
Survol du Stockage et de l’Indexage
Le Modèle Entité-Relation (Entité-Association)
Survol du Stockage et de l’Indexage
World Health Organization
Les arbres généraux.
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.
Chapter 11: Récursivité Java Software Solutions Second Edition
Evaluation des Operations Relationnelles
SQL: Contraintes et Triggers
Algèbre Relationnelle
Transcription de la présentation:

Tri Externe Chapitre 13: 13.1—13.5 The slides for this text are organized into chapters. This lecture covers Chapter 11. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: Schema Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics 1

Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver les étudiants en ordre croissant de gpa Chargement en vrac de l’index à arbre B+ Élimination des duplicatas dans une collection d’enregistrements Algorithme de Sort-merge join Problème commun: trier des données trop larges pour tenir en mémoire 4

Merge Sort à 2 Voies: Requiert 3 Tampons Passage 1: Lire une page, la trier (en mémoire), l’écrire sur disque. seulement une page tampon utilisée Passage 2, 3, …, etc.: trois pages tampon utilisées ENTREE 1 SORTIE ENTREE 2 Mémoire principale Disque Disque 5

Merge Sort à 2 Voies: Algorithme proc two-way_extsort(file) // Trier un fichier sur disque en utilisant 3 pages tampons // Passage 0: produit des runs d’une page Lire chaque page du fichier dans la mémoire, le trier et l’écrire. //Fusionner des paires de runs pour produire de plus long runs // jusqu’à ce qu’il ne reste qu’un seul run While # de runs à la fin du passage précédent > 1 do: //Traiter les passages i=1,2,… While il y a des runs à fusionner issus du passage précédent do: Prendre les 2 runs suivants du passage précèdent. Lire chaque run dans un tampon d’entrée, 1 page à la fois. Fusionner les runs et écrire le résultat dans le tampon de sortie en forçant le contenu de ce tampon vers le disque page par page. endproc 4

Merge Sort Externe à 2 Voies A chaque passage on lit et écrit chaque page du fichier => 2N I/O’s par passage. N pages dans le fichier => # de passages. D’où le coût total est: Idee: Divide et impera: trier des sousfichiers et fusionner. Dans l’exemple, le fichier d’entrée contient 7 pages; les pages noires montrent ce qui se passerait avec 8 pages. 3,4 6,2 9,4 8,7 5,6 3,1 2 Fichier PASSAGE 0 3,4 2,6 4,9 7,8 5,6 1,3 2 runs de 1page PASSAGE 1 2,3 4,7 1,3 runs de 2 pages 4,6 8,9 5,6 2 PASSAGE 2 2,3 4,4 1,2 runs de 4 pages 6,7 3,5 8,9 6 PASSAGE 3 1,2 2,3 3,4 runs de 8 pages 4,5 6,6 7,8 9 6

Merge Sort Externe Général Coment utiliser plus de 3 pages tampon ? Pour trier un fichier avec N pages en utilisant B pages tampon: Passage 0: utiliser B pages tampon. Produit runs triés de B pages chacune. Passage 2, …, etc.: fusionner B-1 runs. ENTREE 1 . . . ENTREE 2 . . . . . . SORTIE ENTREE B-1 Disque Disque B tampons en mémoire 7

Merge Sort Externe Général: Algorithme proc two-way_extsort(file) // Trier un fichier sur disque en utilisant B pages tampons // Passage 0: produit des runs de B pages Lire B pages du fichier dans la mémoire, les trier et les écrire. //Fusionner B-1 runs pour produire de plus long runs // jusqu’à ce qu’il ne reste qu’un seul run While # de runs à la fin du passage précédent > 1 do: //Traiter les passages i=1,2,… While il y a des runs à fusionner issus du passage précédent do: Prendre les B-1 runs suivants du passage précèdent. Lire chaque run dans un tampon d’entrée, 1 page à la fois. Fusionner les runs et écrire le résultat dans le tampon de sortie en forçant le contenu de ce tampon vers le disque page par page. endproc 4

Coût du Merge Sort Externe Nombre de passages: Coût = 2N * (# de passages) P.ex., avec 5 pages tampon, trier un fichier de 108 pages: Passage 0: = 22 runs triés de 5 pages chacune (le dernier n’ayant que 3 pages) Passage 1: = 6 runs triés de 20 pages chacune (le dernier avec seulement 8 pages) Passage 2: 2 runs triés, 80 pages et 28 pages Passage 3: fichier trié de 108 pages 8

Nombre de Passages du Triage Externe 9

I/O pour le Merge Sort Externe … de plus longs runs signifient souvent moins de passages! Les algorithmes présentés font des I/O d’une page à la fois. En pratique, on lit un bloc de pages sequentiellement! Suggestion: les tampons devraient contenir des blocs de pages et non des pages individuelles. En pratique, la plupart des fichiers sont triés en 2-3 passages. Des DBMSs typiques trient 1M d’enreg.’s de la taille de 100 bytes en 15 minutes.

Nombre de Passages du Triage Optimisé Taille des Blocs = 32, le passage initial produit des runs de 2B. 13

Double Tampons Afin de réduire le temps d’attente pour que une requête I/O soit complétée, on peut prélire les données dans un bloc de réserve. Potentiellement, plus de passages sont possibles; en pratique, la plupart des fichiers sont toujours triés en 2-3 passages. ENTREE 1 ENTREE 1' ENTREE 2 SORTIE ENTREE 2' SORTIE' b Taille de bloc Disque ENTREE k Disque ENTREE k' B tampons en mémoire, fusion à k voies

Utilisation des Arbres B+ pour Trier Scénario: La table à trier a un indexe à arbre B+ sur les colonnes de triages. Idée: Puiser les enregistrements dans l’ordre en traversant les feuilles de l’indexe. Est-ce une bonne idée ? Cas à considérer: L’index B+ est groupé: Bonne idée! L’index B+ est non groupé: Pourrait être une très mauvaise idée! 15

Index B+ Groupé Utilisé pour Trier Coût: partir de la racine à la feuille la plus à gauche et de là traverser toutes les pages feuilles (Alternative 1) Si l’alternative 2 est utilisée? Coût additionnel de puiser les enreg.’s des données: chaque page puisée juste une fois. Index (Oriente la recherche) Entrees des donnees ("Sequence set") Enregistrements des données Toujours meilleur que le triage externe! 16

Index B+ Nongroupé Utilisé pour Trier Alternative (2) pour les entrées des données; chaque entrée contient le rid d’un enregistrement des données. En général, un I/O par enregistrement des données! Index Entrées des données Données 17

Résumé Le triage externe est important; un SGBD peut dédier une partie de la réserve des pages tampon juste pour cette tâche! Le merge sort externe minimalise les coûts des entrées et sorties vers le disque: Passage 0: Produit des runs triés de taille B (# de page tampon). Les passages suivants sont des runs de fusion. Le # de runs fusionnés à la fois dépend de B et de la taille du bloc. Bloc de large taille => petit # de runs à fusionner. Les index à arbre B+ groupé sont bons pour le triage externe; les index nongroupés sont généralement très mauvais. 19