1 Tri Externe Chapitre 13: 13.113.5. 2 Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Optimisation des requêtes
Structures de données avancées : Principales structures de fichiers
M. SAILLOUR Lycée Notre Dame du Kreisker St Pol de Léon
Évaluation des requêtes relationnelles
Fonctions & procédures
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Les identités remarquables
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
Witold Litwin Structures physiques Witold Litwin
Optimisation algébrique de requêtes relationnelles
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Les éléments de mémorisation
Chap. 1 Structures séquentielles : listes linéaires
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Chapitre VII. Tri Tri par tas Tri rapide.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2001 © Julie Dufort, M. Ing. Chapitre 3 - ajout Systèmes de fichiers.
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
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
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
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 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.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
1 Survol du Stockage et de lIndexage Chapitres 9-12.
Indexes à Arbres et Indexes à Hachage
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.
MI-SESSION 2007 Miguel Garzon CSI3530. Q1. Idée Tri Externe à 3 voies en utilisant 3 tampons Main memory buffers INPUT 1 INPUT 2 OUTPUT Disk INPUT 2INPUT.
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
SUJET D’ENTRAINEMENT n°4
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.
SUJET D’ENTRAINEMENT n°1
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
Gestion de Fichiers GF-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures,
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Cours 4 - Trois algorithmes de recherche dans un tableau
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
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.
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
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,
VI. Tri par tas.
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
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.
Tri Externe Chapitre 13: 13.1—13.5
Transcription de la présentation:

1 Tri Externe Chapitre 13:

2 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 lindex à arbre B+ Élimination des duplicatas dans une collection denregistrements Algorithme de Sort-merge join Problème commun: trier des données trop larges pour tenir en mémoire

3 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 Mémoire principale ENTREE 1 ENTREE 2 SORTIE Disque

4 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 dune 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 quil ne reste quun 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 dentré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

5 Merge Sort Externe à 2 Voies A chaque passage on lit et écrit chaque page du fichier => 2N I/Os par passage. N pages dans le fichier => # de passages. Doù le coût total est: Idee: Divide et impera: trier des sousfichiers et fusionner. Dans lexemple, le fichier dentrée contient 7 pages; les pages noires montrent ce qui se passerait avec 8 pages. Fichier runs de 1page runs de 2 pages runs de 4 pages runs de 8 pages PASSAGE 0 PASSAGE 1 PASSAGE 2 PASSAGE 3 9 3,4 6,2 9,48,75,63,1 2 3,45,62,64,97,8 1,32 2,3 4,6 4,7 8,9 1,3 5,62 2,3 4,4 6,7 8,9 1,2 3,5 6 1,2 2,3 3,4 4,5 6,6 7,8

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. B tampons en mémoire ENTREE 1 ENTREE B-1 SORTIE Disque ENTREE 2...

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 quil ne reste quun 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 dentré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

8 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 nayant 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

9 Nombre de Passages du Triage Externe

10 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 dune 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 denreg.s de la taille de 100 bytes en 15 minutes.

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

12 Double Tampons Afin de réduire le temps dattente 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. SORTIE SORTIE' Disque ENTREE 1 ENTREE k ENTREE 2 ENTREE 1' ENTREE 2' ENTREE k' Taille de bloc b B tampons en mémoire, fusion à k voies

13 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 lordre en traversant les feuilles de lindexe. Est-ce une bonne idée ? Cas à considérer: Lindex B+ est groupé: Bonne idée ! Lindex B+ est non groupé: Pourrait être une très mauvaise idée!

14 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 lalternative 2 est utilisée? Coût additionnel de puiser les enreg.s des données: chaque page puisée juste une fois. * Toujours meilleur que le triage externe ! (Oriente la recherche) Enregistrements des données Index Entrees des donnees ("Sequence set")

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

16 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.