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,

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é.
Optimisation des requêtes
Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc.
Les Structures de contrôles itératives
Witold Litwin Structures physiques Witold Litwin
Optimisation algébrique de requêtes relationnelles
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Créer une animation simple Gif avec ImageReady.
Database B2 2 MIP Paris.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Stockage des Données: Disques et Fichiers Chapitre 9.
17 octobre 2012 Grégory Petit
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Bases de données lexicales
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 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
Algèbre Relationnelle
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 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
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.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Calcul Relationnel Chapitre 4, Section 4.3.
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,
Algèbre Relationnelle : Implémentation
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,
Algorithmes de tri et de recherche
Initiation aux bases de données
Optimisation de requêtes
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Arbres binaires et tables de hachage
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
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.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
TICE 2 ième Semestre TD6 - Récapitulatif. Mars 2006TICE 2ième Semestre - Révisions2 Evaluation La semaine prochaine Deux demi groupes, minutes d’examen.
B.Shishedjiev - Modèle relationnel
1 Survol du Stockage et de l’Indexage Chapitre 8.
Structures de données avancées : Principales structures de fichiers
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Cours 5 - Trois algorithmes de tri d'un tableau
Structures de données avancées : Hachage dynamique
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.
Page: 1-Ali Walid Gestion de fichiers. B-Arbre +.
TD N°5: Une GPAO pour l’usine Odyssée. Lancement du logiciel Logiciel « Usine Odyssée 7 » disponible dans … Entrer votre nom et un nom d’entreprise de.
Conçu et animé par Geneviève Cantin-Chartré et Nicolas Beaudry-Riendeau 2015 CONCENTRATION, LECTURE ET MÉMORISATION.
Tri Externe Chapitre 13: 13.1—13.5
Evaluation des Operations Relationnelles
Transcription de la présentation:

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, …

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke2 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke3 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke4 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke5 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. 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke6 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...

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke7 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke8 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke9 Nombre de Passages du Triage Externe

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke10 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.

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke11 Nombre de Passages du Triage Optimisé * Taille des Blocs = 32, le passage initial produit des runs de 2B.

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke12 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. 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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke13 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!

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke14 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. * Toujours meilleur que le triage externe ! (Oriente la recherche) Enregistrements des données Index Entrees des donnees ("Sequence set")

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke15 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! Données Index Entrées des données

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke16 Hash Join: Idée  Deux phases: partition et vérification (‘’matching’’)  Partition: Repartir les deux relations R et S en utilisant la même fonction de hachage h : les tuples de R dans la partition i de R ne peuvent être joints que avec ceux de la partition i de S. Suppositions faites:  Le # de pages tampon est B : 1 pour entrée et 1 pour sortie  Le # de partitions est k  Le # de pages tampon utilisé par les partitions est B-2  Hacher R et S sur les colonnes de join i et j  Matching: Lire une partition Ri de R en mémoire et ensuite la hacher en utilisant une fonction de hachage h2 (différente de h ). Scanner la partition Si de S pour rechercher les tuples correspondants aux tuples de Ri (en utilisant h2 pour vérifier la table de hachage de Ri ).

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke17 Hash Join: Algorithme // Calculer le join de deux relations R et S sur les colonnes Ri et Sj. // Repartir R en k partitions foreach tuple r de R do: lire r et l’ajouter à la page tampon h(ri); // Forcer cette page vers le disque au // fur et à mesure qu’elle se remplit // Repartir S en k partitions foreach tuple s of S do: lire s et l’ajouter à la page tampon h(sj); // Forcer cette page vers le disque au // fur et à mesure qu’elle se remplit //Phase de vérification (‘’Probing’’/’’matching’’) for l=1, …, k do : //Construire une table de hachage en mémoire pour Rl, utilisant h2 foreach tuple r de Rl do: lire r et l’insérer dans la table de hachage de Rl utilisant h2(ri); // Scanner les tuples de Sl et vérifier les tuples correspondants à r dans Rl foreach tuple s de S l do : lire s et vérifier la table de hachage de Rl en utilisant h2(sj); pour tout tuple correspondant r dans Rl, sortir ; réinitialiser la table de hachage pour préparer la prochaine partition;

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke18 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.  Les algorithmes de join sont cruciaux en pratique. Le hash join est largement supporté par les SGBDs.