Evaluation des Operations Relationnelles : Algorithmes Additionnels - PowerPoint PPT Presentation

About This Presentation
Title:

Evaluation des Operations Relationnelles : Algorithmes Additionnels

Description:

En supposant une distribution uniforme des noms, environ 10% des tuples sont ... de donn es dans l'ordre (en appliquant la m thode ' index-only scan ') en ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 14
Provided by: RaghuRamak246
Category:

less

Transcript and Presenter's Notes

Title: Evaluation des Operations Relationnelles : Algorithmes Additionnels


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

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 lt C (i.e. 100
    pages, 10000 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à 10000 I/Os!
  • Amélioration importante pour les indexes non
    groupés
  • 1. Trouver les entrées de données ltk,ridgt
    (rappel rid ltpage_id, slotgt).
  • 2. Trier les rids des enregistrement de données
    à extraire selon la composante page_id.
  • 3. Puiser les rids dans lordre des page_ids.
    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 extrait du disque.
  • Considérons daylt8/9/94 AND bid5 AND sid3. Un
    index à arbre B sur day peut être utilisé
    apres cela, bid5 et sid3 doivent être validés
    pour chaque tuple extrait. De même, un index à
    hachage sur ltbid, sidgt pourrait être utilisé
    daylt8/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 rids des enregistrements
    des données en utilisant chaque index
    correspondant à la condition.
  • Ensuite calculer lintersection de ces ensembles
    de rids.
  • Extraire les enregistrements du disque et
    appliquer les termes restants.
  • Considérons daylt8/9/94 AND bid5 AND sid3. Si
    nous avons un index à arbre B sur day et un
    index sur sid utilisant lalternative (2), nous
    pouvons extraire les rids des enregistrements
    qui satisfont daylt8/9/94 en utilisant le premier
    index, ensuite les rids des enregistrements qui
    satisfont sid3 en utilisant le deuxième index,
    calculer lintersection, et appliquer le terme
    bid5.

5
Projection
SELECT DISTINCT R.sid,
R.bid FROM Reserves R
  • 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.

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 gt 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.
Write a Comment
User Comments (0)
About PowerShow.com