1 / 73

1 4

1 4. Βελτιστοποίηση και Επεξεργασία Ερωτημάτων. Αλγεβρικοί μετασχηματισμοί Ευριστική βελτιστοποίηση Υλοποίηση πράξεων και Εκτίμηση κόστους Εξαγωγή αποτελέσματος. Κεφάλαιο 14 : Βελτιστοποίηση και Επεξεργασία Ερωτημάτων. Εισαγωγή.

duer
Télécharger la présentation

1 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 14 Βελτιστοποίηση και Επεξεργασία Ερωτημάτων • Αλγεβρικοί μετασχηματισμοί • Ευριστική βελτιστοποίηση • Υλοποίηση πράξεων και Εκτίμηση κόστους • Εξαγωγή αποτελέσματος

  2. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Η διατύπωση ενός ερωτήματος προς το ΣΔΒΔ πραγματοποιείται συνήθως σε μία γλώσσα βάσης δεδομένων υψηλού επιπέδου (όπως η SQL). • Οι γλώσσες αυτές αποδεσμεύουν το χρήστη από λεπτομέρειες υλοποίησης καθώς δεν περιέχουν τον τρόπο εκτέλεσης του ερωτήματος. • Η μέθοδος που θα επιλεγεί για την εκτέλεση του ερωτήματος και την εξαγωγή του αποτελέσματος είναι υπευθυνότητα του ΣΔΒΔ.

  3. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Πριν την εκτέλεση ενός ερωτήματος προηγείται βελτι-στοποίηση για μείωση του χρόνου επεξεργασίας ώστε να προσδιοριθεί: • η σειρά προσπέλασης των δεδομένων, • ποιοι κατάλογοι θα χρησιμοποιηθούν, • πόση μνήμη θα δευσμευτεί, και • ποια αρχεία δεδομένων απαιτούνται.

  4. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Δημιουργείται ένα πλάνο εκτέλεσης ερωτήματος που περιέχει όλες τις απαραίτητες πληροφορίες. • Το πλάνο εκτέλεσης περιέχει: • τη σειρά εκτέλεσης των πράξεων, • πληροφορίες σχετικά με το ποια μέθοδος θα χρησιμοποιηθεί για την επεξεργασία κάθε πράξης. • Το πλάνο εκτέλεσης διοχετεύεται στη μηχανή εκτέλεσης, όπου διεκπεραιώνεται: • η επεξεργασία του ερωτήματος, και • η παραγωγή του τελικού αποτελέσματος.

  5. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Μηχανή εκτέλεσης

  6. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Λόγοι καθυστέρησης ερωτήματος: • Προσπελάσεις στο δίσκο • Χρόνος προσπέλασης για την ανάγνωση μιας μονάδας πληροφορίας • Κύκλοι CPU • Πολύπλοκες πράξεις • Διαθέσιμη μνήμη • Μεγαλύτερη μνήμη λιγότερες προσπελάσεις στο δίσκο.

  7. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Στάδια βελτιστοποίησης: • αλλαγή του τρόπου διατύπωσης του ερωτήματος μέσω αλγεβρικών μετασχηματισμών, • προσδιορισμός των εναλλακτικών λύσεων για την υλοποίηση των πράξεων της σχεσιακής άλγεβρας, • έλεγχος του κόστους επεξεργασίας των διαφόρων πράξεων του ερωτήματος, ώστε να προσδιορισθεί η σειρά εκτέλεσης και η μέθοδος που θα χρησιμοποιηθεί για κάθε πράξη.

  8. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Δυναμική διαδικασία βελτιστοποίησης: • το ερώτημα βελτιστοποιείται κάθε φορά που απαιτείται η επεξεργασία του, • υπάρχει η εγγύηση ότι πάντα το επιλεγόμενο πλάνο εκτέλεσης επιλέγεται με βάση τα τρέχοντα δεδομένα της βάσης, • όμως πρέπει να δαπανηθεί ένα χρονικό διάστημα για την ολοκλήρωση της διαδικασίας βελτιστοποίησης.

  9. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Στατική διαδικασία βελτιστοποίησης: • ενεργεί μία μόνο φορά σε κάθε ερώτημα, • αποφεύγεται το επιπλέον χρονικό κόστος για την επιλογή ενός καλού πλάνου απάντησης, • ένα πλάνο που θεωρείται καλό για τη συγκεκριμένη χρονική στιγμή, μπορεί να μην είναι τόσο αποδοτικό την επόμενη φορά που θα απαιτηθεί η επεξεργασία του ερωτήματος, λόγω των αλλαγών στη βάση δεδομένων. • Η στατική και δυναμική βελτιστοποίηση μπορούν να συνδυασθούν ώστε να προκύψει ένα υβριδικό σχήμα.

  10. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Οι αλγεβρικοί μετασχηματισμοί χρησιμοποιούν ισο-δυναμίες μεταξύ εκφράσεων της σχεσιακής άλγεβρας, ώστε το ερώτημα που προκύπτει να είναι ισοδύναμο με το αρχικό. • Μπορούμε να δημιουργήσουμε πολλά διαφορετικά πλάνα εκτέλεσης ενός ερωτήματος, και στη συνέχεια να επιλέξουμε ένα αποδοτικό πλάνο για την επεξεργασία του.

  11. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Χρησιμοποιούμενα σύμβολα: • X, Y, Zείναι εκφράσεις της Σχεσιακής Άλγεβρας, • a, a1, …, aN, b, b1, …, bN, c, c1, …, cNείναι στήλες ενός ή περισσοτέρων πινάκων, • A, B, Cείναι σύνολα στηλών, και • p, q, wείναι συνθήκες.

  12. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Κανόνες μετασχηματισμού

  13. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Κανόνες μετασχηματισμού

  14. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Ένα δένδρο έκφρασης (expression tree) περιγράφει σχηματικά τις πράξεις που λαμβάνουν χώρα. • Ο κάθε κανόνας μετατρέπει το ένα δένδρο έκφρασης σε ένα άλλο ισοδύναμό του. • Κάθε εσωτερικός κόμβος του δένδρου αντιπροσωπεύει μία πράξη της σχεσιακής άλγεβρας, ενώ κάθε φύλλο αντιπροσωπεύει έναν πίνακα της βάσης. • Η ροή των δεδομένων γίνεται από κάτω προς τα πάνω. • Μία ζεύξη μεταξύ δύο κόμβων δηλώνει ότι το αποτέ-λεσμα του χαμηλότερου κόμβου μεταβιβάζεται ως είσοδος στον υψηλότερο κόμβο.

  15. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Δένδρα Έκφρασης

  16. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Παράδειγμα: Άρθρο και Γνωστική περιοχή

  17. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Παράδειγμα: ερώτημα σε SQL.SELECTΆρθρο.κωδικός, Γνωστική_Περιοχή.τίτλοςFROMΆρθρο, Γνωστική_ΠεριοχήWHEREΆρθρο.κωδικός_γνωστικής_περιοχής = Γνωστική_Περιοχή.κωδικός AND Γνωστική_Περιοχή.αριθμός_συνδρομητών > 100

  18. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων

  19. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων

  20. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων

  21. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Η ευριστική βελτιστοποίηση (heuristic optimization) χρησιμοποιεί τους κανόνες μετασχηματισμού των εκφράσεων της σχεσιακής άλγεβρας με στόχο την παραγωγή ενός αποδοτικού πλάνου εκτέλεσης. • Η μεθοδολογία αυτή καλείται “ευριστική” διότι δεν υπάρχει εγγύηση ότι το πλάνο εκτέλεσης που θα προκύψει θα είναι πάντα και το βέλτιστο δυνατό.

  22. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Η απόδοση ενός πλάνου εκτέλεσης δεν εξαρτάται μόνο από το είδος των πράξεων που μετέχουν στο ερώτημα αλλά και από άλλες παραμέτρους, όπως τον αριθμό των γραμμών των πινάκων. • Η ευριστική βελτιστοποίηση υλοποιείται εύκολα και λόγω της γρήγορης εκτέλεσής της μπορεί να χρησιμοποιηθεί τόσο σε στατική όσο και σε δυναμική βελτιστοποίηση.

  23. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 1: Οι πράξεις της επιλογής πρέπει να εκτελούνται όσο νωρίτερα γίνεται. • Κανόνας 2: Οι πράξεις της προβολής πρέπει να εκτελούνται όσο νωρίτερα γίνεται.

  24. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 3: Συνδυασμός της πράξης του καρτεσιανού γινομένου με τη συνθήκη της πράξης επιλογής, έτσι ώστε να δημιουργηθεί μία πράξη σύνδεσης. • Το καρτεσιανό γινόμενο δύο πινάκων είναι χρονοβόρα πράξη. • Εάν υπάρχει στο ερώτημα συνθήκη επιλογής μπορούμε να χρησιμοποιήσουμε μία πράξη σύνδεσης, που είναι αποδοτικότερη από άποψη χρόνου. • Ο κανόνας αυτός χρησιμοποιεί τον ορισμό της σύνδεσης:

  25. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 4: Οι πράξεις επιλογής και σύνδεσης, οι οποίες παράγουν το μικρότερο αποτέλεσμα πρέπει να εκτελούνται πρώτες. • Στόχος του κανόνα είναι ο περιορισμός του μεγέθους των ενδιάμεσων αποτελεσμάτων εκτελώντας πρώτα τις πράξεις που περιορίζουν το μέγεθος των δεδομένων. • Για να εφαρμοσθεί ο κανόνας απαιτείται η γνώση του μεγέθους του αποτελέσματος που παράγουν οι πράξεις επιλογής και σύνδεσης.

  26. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 5: Οι κοινές εκφράσεις πρέπει να υπολογίζο-νται μία μόνο φορά, και το αποτέλεσμα αποθηκεύεται για να χρησιμοποιηθεί στη συνέχεια. • Η εφαρμογή του κανόνα είναι εφικτή αν το αποτέλεσμα της πράξης είναι αρκετά μικρό ώστε να μπορεί να αποθηκευθεί στην κύρια μνήμη. • Αν το αποτέλεσμα πρέπει να αποθηκευθεί στη δευτε-ρεύουσα μνήμη, τότε η χρήση του κανόνα έχει νόημα μόνο αν το κόστος προσπέλασης στο δίσκο είναι μικρό-τερο από το κόστος επανα-υλοπογισμού της έκφρασης.

  27. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Παράδειγμα: Έστω το ερώτημα όπου Χ και Υ πίνακες και θ μια συνθήκη που χρησιμοποιεί μόνο στήλες του πίνακα Υ. • Σύμφωνα με τον πρώτο ευριστικό κανόνα η πράξη της επιλογής θα εκτελεστεί πριν την σύνδεση.

  28. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Υπόθεση: το X είναι αρκετά μικρότερο του Y και υπάρχει ένας κατάλογος σύνδεσης μεταξύ των X και Y, ο οποίος δεν χρησιμοποιεί τις στήλες που αναφέρονται στη συνθήκη θ. • Το να εκτελεσθεί η πράξη της επιλογής πριν την πράξη της σύνδεσης ίσως να μην έχει το επιθυμητό αποτέλεσμα από πλευράς κόστους επεξεργασίας.

  29. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Αυτό συμβαίνει διότι μετά την εκτέλεση της πράξης επιλογής στον πίνακα X θα πρέπει να εξετασθούν οι γραμμές του Y μία-προς-μία, διότι δεν μπορεί να γίνει χρήση του καταλόγου σύνδεσης. • Το γεγονός αυτό ίσως αυξήσει το κόστος επεξεργασίας και επομένως η επιλογή ενός αποδοτικού πλάνου εκτέλεσης να μην είναι επιτυχής.

  30. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Χρησιμοποιούνται και τεχνικές εκτίμησης κόστους εκτός της ευριστικής βελτιστοποίησης. • Η μεθοδολογία καλείται βελτιστοποίηση βασισμένη στο κόστος (cost based optimization), η οποία σε αντίθεση με την ευριστική βελτιστοποίηση, λαμβάνει υπόψη εκτός από την αλγεβρική έκφραση του ερωτή-ματος και τις δυνατές επιλογές που υπάρχουν για την εκτέλεση των πράξεων που μετέχουν στο ερώτημα.

  31. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Στατιστικές πληροφορίες που αποθηκεύονται στον κατάλογο συστήματος του ΣΔΒΔ.

  32. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Οι στατιστικές πληροφορίες πρέπει να ενημερώνονται όποτε υπάρχουν αλλαγές στα δεδομένα των πινάκων. • Η συνεχής ενημέρωση συνεπάγεται σημαντικό κόστος. • Οι ενημερώσεις γίνονται κατά διαστήματα όταν ο φόρτος του συστήματος είναι μικρός. • Οι συμβολισμοί που χρησιμοποιούνται είναι: • επιλογή Si • προβολή Pi • σύνδεση Ji όπου i δηλώνει τη μέθοδο επεξεργασίας της αντίστοιχης πράξης.

  33. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Στόχος είναι να προσδιορισθούν οι γραμμές του πίνακα, οι οποίες ικανοποιούν μία συνθήκη θ, η οποία μπορεί να είναι απλή ή σύνθετη, και να μετέχουν σε αυτή μία ή περισσότερες στήλες του πίνακα.

  34. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Η γραμμική αναζήτηση (linear search) ή πλήρης αναζήτηση(full scan) εξετάζει όλες τις γραμμές του πίνακα για να διαπιστωθεί αν ισχύει η συνθήκη θ. • Η γραμμική αναζήτηση εφαρμόζεται όταν: • ο πίνακας δεν είναι ταξινομημένος, • ο πίνακας είναι ταξινομημένος ως προς μια στήλη που δεν συμμετέχει στην συνθήκη θ, • ο πίνακας είναι αποτέλεσμα άλλων πράξεων (ενδιάμεσο αποτέλεσμα) ή δεν υπάρχουν κατάλογοι που μπορούν να χρησιμοποιηθούν.

  35. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Το κόστος της γραμμικής αναζήτησης σε αριθμό προσπελάσεων είναι: • Αν η αναζήτηση πραγματοποιείται με βάση συνθήκη ισότητας σε στήλη που είναι κλειδί, τότε το πολύ μία γραμμή του πίνακα θα ικανοποιεί τη συνθήκη. • Στη μέση περίπτωση θα απαιτηθεί η εξέταση του μισού πίνακα έως ότου βρεθεί η αναζητούμενη τιμή του κλειδιού, επομένως το κόστος σε αριθμό προσπελάσεων είναι:

  36. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Η δυαδική αναζήτηση (binary search) εφαρμόζεται σε ταξινομημένο πίνακα όταν περιέχει συνθήκη ισότητας ως προς τη στήλη που είναι ταξινομημένος ο πίνακας. • Το κόστος επεξεργασίας είναι: • ο πρώτος όρος είναι ο αριθμός προσπελάσεων που απαιτού-νται για τον προσδιορισμό της πρώτης γραμμής ικανοποίησης της συνθήκης, • ο δεύτερος όρος είναι ο αριθμός προσπελάσεων που απαιτούνται για την αναγνώριση όλων των γραμμών που ικανοποιούν την συνθήκη.

  37. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ισότητα στο πρωτεύον κλειδί με χρήση καταλόγου. • Απαιτούνται τόσες προσπελάσεις όσο είναι το ύψος του καταλόγου και μια επιπλέον για την προσπέλαση του τμήματος του πίνακα, που βρίσκεται αποθηκευμένη η γραμμή με την αναζητούμενη τιμή κλειδιού:

  38. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ισότητα σε στήλη που δεν είναι κλειδί με χρήση καταλόγου. • Όταν η στήλη δεν είναι κάποιο κλειδί του πίνακα, η συνθήκη ισότητας ενδέχεται να ικανοποιείται για περισσότερες από μία γραμμές. • Από τις στατιστικές πληροφορίες γνωρίζουμε ότι sc(X,a) γραμμές του πίνακα ικανοποιούν τη συνθήκη ισότητας για τη στήλη a σε μία τυπική περίπτωση.

  39. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Το κόστος επεξεργασίας είναι: • Στην περίπτωση που ο κατάλογος δεν ομαδοποιεί τις γραμμές ως προς τη συγκεκριμένη στήλη, τότε το κόστος επεξεργασίας είναι:

  40. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Πρωτεύοντος καταλόγου. • Αρχικά προσδιορίζεται η γραμμή του πίνακα, η οποία ικανοποιεί τη συνθήκη ισότητας. • Στη συνέχεια προσπελαύνονται όλες οι προηγούμενες ή όλες οι επόμενες γραμμές ανάλογα με τη συνθήκη ανισότητας. • Το κόστος επεξεργασίας είναι:

  41. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Τα φύλλα του Β+-δένδρου είναι οργανωμένα με συνδεδεμένη λίστα. • Μετά την εύρεση της πρώτης τιμής οι επόμενες προσπελαύονται ακολουθώντας τους δείκτες. • Ακολουθώντας τους δείκτες εγγραφών που υπάρχουν στα φύλλα μπορούμε ναπροσπελάσουμε τις αντίστοιχες γραμμές του πίνακα.

  42. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Αν υποθέτουμε ότι οι μισές γραμμές του πίνακα ικανοποιούν τη συνθήκη ανισότητας, τότε ο αριθμός προσπελάσεων είναι: • Με όμοιο τρόπο επεξεργαζόμαστε ερωτήματα διαστήματος που θέτουν επάνω και κάτω φράγμα στην τιμή μιας στήλης.

  43. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη.Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Αν μια στήλη που συμμετέχει στη συνθήκη έχει κατάλογο ή ο πίνακας είναι ταξινομημένος ως προς τις τιμές της στήλης, τότε: • χρησιμοποιείται ένας από τους αλγόριθμους επεξεργασίας, και • οι γραμμές του πίνακα ελέγχονται μία προς μία ως προς την ικανοποίηση των άλλων συνθηκών. • Αν η συνθήκη της επιλογής περιέχει μία η περισσότερες απλούστερες συνθήκες ισότητας και υπάρχει κατάλογος ή δομή κατακερματισμού για τις στήλες αυτές, τότε: • χρησιμοποιούμε τον κατάλογο ώστε να προσδιορισθεί ένα σύνολο γραμμών.

  44. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη. Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Αν υπάρχουν δευτερεύοντες κατάλογοι για μία ή περισ-σότερες στήλες του πίνακα και η συνθήκη επιλογής πε-ριέχει απλούστερες συνθήκες ισότητας, τότε μπορούμε να χρησιμοποιήσουμε τους δείκτες εγγραφών για τον προσδιορισμό της απάντησης. • Διαδικασία επιλογής: • συγκεντρώνονται οι δείκτες εγγραφών, και • προσδιορίζονται οι δείκτες εγγραφών που είναι κοινοί.

  45. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη.Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Στην περίπτωση αυτή απαιτείται η ύπαρξη καταλόγων ή διάταξης των δεδομένων για όλες τις υποσυνθήκες. • Η πράξη της επιλογής εκτελείται χωριστά για κάθε υποσυνθήκη και στη συνέχεια πραγματοποιείται ένωση των αποτελεσμάτων. • Αν υπάρχει έστω και μία υποσυνθήκη για την οποία δεν μπορεί να χρησιμοποιηθεί κάποιος κατάλογος, τότε η μόνη λύση είναι η γραμμική αναζήτηση όπου ελέγχονται όλες οι υποσυνθήκες ταυτόχρονα για κάθε γραμμή του πίνακα που εξετάζεται.

  46. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Η πράξη της προβολής επιστρέφει τις τιμές ενός υποσυνόλου στηλών ενός πίνακα ή μίας έκφρασης. • Η επεξεργασία της πράξης της προβολής αποτελείται από δύο στάδια: • απαλοιφή των στηλών που δεν ενδιαφέρουν το ερώτημα, και • απαλοιφή των διπλοτύπων (γραμμών με ίδιες τιμές σε όλες τις επιλεγόμενες στήλες).

  47. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Προβολή με Ταξινόμηση P1. • Οι γραμμές ταξινομούνται ως προς όλες τις στήλες, έτσι ώστε αν δύο ή περισσότερες γραμμές έχουν ίδιες τιμές για τις αντίστοιχες στήλες να είναι γειτονικές στην τελική διάταξη. • Aν μία γραμμή εμφανίζεται περισσότερο από μία φορά, τότε οι επιπλέον εμφανίσεις διαγράφονται από το τελικό αποτέλεσμα.

  48. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Προβολή με Κατακερματισμό (P2). • Αρχικά εφαρμόζεται μία συνάρτηση κατακερματισμού h(x_1,...,xN). • Κάθε φορά που επιλέγεται ο κάδος, όπου αντιστοιχεί μία γραμμή, πραγματοποιείται έλεγχος αν υπάρχει όμοια γραμμή στο συγκεκριμένο κάδο. • αν βρεθεί γραμμή με τις ίδιες τιμές στηλών, τότε η νέα γραμμή δεν εισάγεται στον κάδο, ενώ • αν δεν υπάρχει όμοια γραμμή, τότε η νέα γραμμή εισάγεται στον κάδο και η μέθοδος συνεχίζεται μέχρι να εξαντληθούν όλες οι γραμμές.

  49. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση • Είναι χρονοβόρα πράξη και για αυτό έχουν προταθεί πολλοί απαιτούνται αποδοτικοί αλγόριθμοι: • μέθοδος εμφωλιασμένων βρόχων (nested loops), • μέθοδος εμφωλιασμένων βρόχων με τμήματα(block nested loops), • μέθοδος εμφωλιασμένων βρόχων με κατάλογο(indexed nested loops), • μέθοδος ταξινόμησης-συγχώνευσης (sort-merge), • μέθοδος κατακερματισμού (hash join), και • μέθοδος καταλόγου σύνδεσης (join index).

  50. Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση • Μέθοδος φωλιασμένων βρόχων - J1. • Για κάθε μία από τις γραμμές x  X ελέγχουμε αν υπάρχουν γραμμές y  Y, έτσι ώστε να ικανοποιείται η συνθήκη της σύνδεσης. • Δύο είναι τα βασικά πλεονεκτήματα της μεθόδου: • υλοποιείται εύκολα, και • χρησιμοποιείται για οποιαδήποτε συνθήκη σύνδεσης θ. • Η απόδοση της μεθόδου είναι ικανοποιητική για μικρά μεγέθη πινάκων. • Στην περίπτωση αυτή το κόστος ισούται με τον αριθμό προσπελάσεων των τμημάτων των δύο πινάκων:

More Related