730 likes | 860 Views
1 4. Βελτιστοποίηση και Επεξεργασία Ερωτημάτων. Αλγεβρικοί μετασχηματισμοί Ευριστική βελτιστοποίηση Υλοποίηση πράξεων και Εκτίμηση κόστους Εξαγωγή αποτελέσματος. Κεφάλαιο 14 : Βελτιστοποίηση και Επεξεργασία Ερωτημάτων. Εισαγωγή.
E N D
14 Βελτιστοποίηση και Επεξεργασία Ερωτημάτων • Αλγεβρικοί μετασχηματισμοί • Ευριστική βελτιστοποίηση • Υλοποίηση πράξεων και Εκτίμηση κόστους • Εξαγωγή αποτελέσματος
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Η διατύπωση ενός ερωτήματος προς το ΣΔΒΔ πραγματοποιείται συνήθως σε μία γλώσσα βάσης δεδομένων υψηλού επιπέδου (όπως η SQL). • Οι γλώσσες αυτές αποδεσμεύουν το χρήστη από λεπτομέρειες υλοποίησης καθώς δεν περιέχουν τον τρόπο εκτέλεσης του ερωτήματος. • Η μέθοδος που θα επιλεγεί για την εκτέλεση του ερωτήματος και την εξαγωγή του αποτελέσματος είναι υπευθυνότητα του ΣΔΒΔ.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Πριν την εκτέλεση ενός ερωτήματος προηγείται βελτι-στοποίηση για μείωση του χρόνου επεξεργασίας ώστε να προσδιοριθεί: • η σειρά προσπέλασης των δεδομένων, • ποιοι κατάλογοι θα χρησιμοποιηθούν, • πόση μνήμη θα δευσμευτεί, και • ποια αρχεία δεδομένων απαιτούνται.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Δημιουργείται ένα πλάνο εκτέλεσης ερωτήματος που περιέχει όλες τις απαραίτητες πληροφορίες. • Το πλάνο εκτέλεσης περιέχει: • τη σειρά εκτέλεσης των πράξεων, • πληροφορίες σχετικά με το ποια μέθοδος θα χρησιμοποιηθεί για την επεξεργασία κάθε πράξης. • Το πλάνο εκτέλεσης διοχετεύεται στη μηχανή εκτέλεσης, όπου διεκπεραιώνεται: • η επεξεργασία του ερωτήματος, και • η παραγωγή του τελικού αποτελέσματος.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Μηχανή εκτέλεσης
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Λόγοι καθυστέρησης ερωτήματος: • Προσπελάσεις στο δίσκο • Χρόνος προσπέλασης για την ανάγνωση μιας μονάδας πληροφορίας • Κύκλοι CPU • Πολύπλοκες πράξεις • Διαθέσιμη μνήμη • Μεγαλύτερη μνήμη λιγότερες προσπελάσεις στο δίσκο.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Στάδια βελτιστοποίησης: • αλλαγή του τρόπου διατύπωσης του ερωτήματος μέσω αλγεβρικών μετασχηματισμών, • προσδιορισμός των εναλλακτικών λύσεων για την υλοποίηση των πράξεων της σχεσιακής άλγεβρας, • έλεγχος του κόστους επεξεργασίας των διαφόρων πράξεων του ερωτήματος, ώστε να προσδιορισθεί η σειρά εκτέλεσης και η μέθοδος που θα χρησιμοποιηθεί για κάθε πράξη.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Δυναμική διαδικασία βελτιστοποίησης: • το ερώτημα βελτιστοποιείται κάθε φορά που απαιτείται η επεξεργασία του, • υπάρχει η εγγύηση ότι πάντα το επιλεγόμενο πλάνο εκτέλεσης επιλέγεται με βάση τα τρέχοντα δεδομένα της βάσης, • όμως πρέπει να δαπανηθεί ένα χρονικό διάστημα για την ολοκλήρωση της διαδικασίας βελτιστοποίησης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εισαγωγή • Στατική διαδικασία βελτιστοποίησης: • ενεργεί μία μόνο φορά σε κάθε ερώτημα, • αποφεύγεται το επιπλέον χρονικό κόστος για την επιλογή ενός καλού πλάνου απάντησης, • ένα πλάνο που θεωρείται καλό για τη συγκεκριμένη χρονική στιγμή, μπορεί να μην είναι τόσο αποδοτικό την επόμενη φορά που θα απαιτηθεί η επεξεργασία του ερωτήματος, λόγω των αλλαγών στη βάση δεδομένων. • Η στατική και δυναμική βελτιστοποίηση μπορούν να συνδυασθούν ώστε να προκύψει ένα υβριδικό σχήμα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Οι αλγεβρικοί μετασχηματισμοί χρησιμοποιούν ισο-δυναμίες μεταξύ εκφράσεων της σχεσιακής άλγεβρας, ώστε το ερώτημα που προκύπτει να είναι ισοδύναμο με το αρχικό. • Μπορούμε να δημιουργήσουμε πολλά διαφορετικά πλάνα εκτέλεσης ενός ερωτήματος, και στη συνέχεια να επιλέξουμε ένα αποδοτικό πλάνο για την επεξεργασία του.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Χρησιμοποιούμενα σύμβολα: • X, Y, Zείναι εκφράσεις της Σχεσιακής Άλγεβρας, • a, a1, …, aN, b, b1, …, bN, c, c1, …, cNείναι στήλες ενός ή περισσοτέρων πινάκων, • A, B, Cείναι σύνολα στηλών, και • p, q, wείναι συνθήκες.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Κανόνες μετασχηματισμού
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Κανόνες μετασχηματισμού
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Ένα δένδρο έκφρασης (expression tree) περιγράφει σχηματικά τις πράξεις που λαμβάνουν χώρα. • Ο κάθε κανόνας μετατρέπει το ένα δένδρο έκφρασης σε ένα άλλο ισοδύναμό του. • Κάθε εσωτερικός κόμβος του δένδρου αντιπροσωπεύει μία πράξη της σχεσιακής άλγεβρας, ενώ κάθε φύλλο αντιπροσωπεύει έναν πίνακα της βάσης. • Η ροή των δεδομένων γίνεται από κάτω προς τα πάνω. • Μία ζεύξη μεταξύ δύο κόμβων δηλώνει ότι το αποτέ-λεσμα του χαμηλότερου κόμβου μεταβιβάζεται ως είσοδος στον υψηλότερο κόμβο.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Δένδρα Έκφρασης
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Παράδειγμα: Άρθρο και Γνωστική περιοχή
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Αλγεβρικοί μετασχηματισμοί • Παράδειγμα: ερώτημα σε SQL.SELECTΆρθρο.κωδικός, Γνωστική_Περιοχή.τίτλοςFROMΆρθρο, Γνωστική_ΠεριοχήWHEREΆρθρο.κωδικός_γνωστικής_περιοχής = Γνωστική_Περιοχή.κωδικός AND Γνωστική_Περιοχή.αριθμός_συνδρομητών > 100
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Η ευριστική βελτιστοποίηση (heuristic optimization) χρησιμοποιεί τους κανόνες μετασχηματισμού των εκφράσεων της σχεσιακής άλγεβρας με στόχο την παραγωγή ενός αποδοτικού πλάνου εκτέλεσης. • Η μεθοδολογία αυτή καλείται “ευριστική” διότι δεν υπάρχει εγγύηση ότι το πλάνο εκτέλεσης που θα προκύψει θα είναι πάντα και το βέλτιστο δυνατό.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Η απόδοση ενός πλάνου εκτέλεσης δεν εξαρτάται μόνο από το είδος των πράξεων που μετέχουν στο ερώτημα αλλά και από άλλες παραμέτρους, όπως τον αριθμό των γραμμών των πινάκων. • Η ευριστική βελτιστοποίηση υλοποιείται εύκολα και λόγω της γρήγορης εκτέλεσής της μπορεί να χρησιμοποιηθεί τόσο σε στατική όσο και σε δυναμική βελτιστοποίηση.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 1: Οι πράξεις της επιλογής πρέπει να εκτελούνται όσο νωρίτερα γίνεται. • Κανόνας 2: Οι πράξεις της προβολής πρέπει να εκτελούνται όσο νωρίτερα γίνεται.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 3: Συνδυασμός της πράξης του καρτεσιανού γινομένου με τη συνθήκη της πράξης επιλογής, έτσι ώστε να δημιουργηθεί μία πράξη σύνδεσης. • Το καρτεσιανό γινόμενο δύο πινάκων είναι χρονοβόρα πράξη. • Εάν υπάρχει στο ερώτημα συνθήκη επιλογής μπορούμε να χρησιμοποιήσουμε μία πράξη σύνδεσης, που είναι αποδοτικότερη από άποψη χρόνου. • Ο κανόνας αυτός χρησιμοποιεί τον ορισμό της σύνδεσης:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 4: Οι πράξεις επιλογής και σύνδεσης, οι οποίες παράγουν το μικρότερο αποτέλεσμα πρέπει να εκτελούνται πρώτες. • Στόχος του κανόνα είναι ο περιορισμός του μεγέθους των ενδιάμεσων αποτελεσμάτων εκτελώντας πρώτα τις πράξεις που περιορίζουν το μέγεθος των δεδομένων. • Για να εφαρμοσθεί ο κανόνας απαιτείται η γνώση του μεγέθους του αποτελέσματος που παράγουν οι πράξεις επιλογής και σύνδεσης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Κανόνας 5: Οι κοινές εκφράσεις πρέπει να υπολογίζο-νται μία μόνο φορά, και το αποτέλεσμα αποθηκεύεται για να χρησιμοποιηθεί στη συνέχεια. • Η εφαρμογή του κανόνα είναι εφικτή αν το αποτέλεσμα της πράξης είναι αρκετά μικρό ώστε να μπορεί να αποθηκευθεί στην κύρια μνήμη. • Αν το αποτέλεσμα πρέπει να αποθηκευθεί στη δευτε-ρεύουσα μνήμη, τότε η χρήση του κανόνα έχει νόημα μόνο αν το κόστος προσπέλασης στο δίσκο είναι μικρό-τερο από το κόστος επανα-υλοπογισμού της έκφρασης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Παράδειγμα: Έστω το ερώτημα όπου Χ και Υ πίνακες και θ μια συνθήκη που χρησιμοποιεί μόνο στήλες του πίνακα Υ. • Σύμφωνα με τον πρώτο ευριστικό κανόνα η πράξη της επιλογής θα εκτελεστεί πριν την σύνδεση.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Υπόθεση: το X είναι αρκετά μικρότερο του Y και υπάρχει ένας κατάλογος σύνδεσης μεταξύ των X και Y, ο οποίος δεν χρησιμοποιεί τις στήλες που αναφέρονται στη συνθήκη θ. • Το να εκτελεσθεί η πράξη της επιλογής πριν την πράξη της σύνδεσης ίσως να μην έχει το επιθυμητό αποτέλεσμα από πλευράς κόστους επεξεργασίας.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Ευριστική βελτιστοποίηση • Αυτό συμβαίνει διότι μετά την εκτέλεση της πράξης επιλογής στον πίνακα X θα πρέπει να εξετασθούν οι γραμμές του Y μία-προς-μία, διότι δεν μπορεί να γίνει χρήση του καταλόγου σύνδεσης. • Το γεγονός αυτό ίσως αυξήσει το κόστος επεξεργασίας και επομένως η επιλογή ενός αποδοτικού πλάνου εκτέλεσης να μην είναι επιτυχής.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Χρησιμοποιούνται και τεχνικές εκτίμησης κόστους εκτός της ευριστικής βελτιστοποίησης. • Η μεθοδολογία καλείται βελτιστοποίηση βασισμένη στο κόστος (cost based optimization), η οποία σε αντίθεση με την ευριστική βελτιστοποίηση, λαμβάνει υπόψη εκτός από την αλγεβρική έκφραση του ερωτή-ματος και τις δυνατές επιλογές που υπάρχουν για την εκτέλεση των πράξεων που μετέχουν στο ερώτημα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Στατιστικές πληροφορίες που αποθηκεύονται στον κατάλογο συστήματος του ΣΔΒΔ.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων και Εκτίμηση κόστους • Οι στατιστικές πληροφορίες πρέπει να ενημερώνονται όποτε υπάρχουν αλλαγές στα δεδομένα των πινάκων. • Η συνεχής ενημέρωση συνεπάγεται σημαντικό κόστος. • Οι ενημερώσεις γίνονται κατά διαστήματα όταν ο φόρτος του συστήματος είναι μικρός. • Οι συμβολισμοί που χρησιμοποιούνται είναι: • επιλογή Si • προβολή Pi • σύνδεση Ji όπου i δηλώνει τη μέθοδο επεξεργασίας της αντίστοιχης πράξης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Στόχος είναι να προσδιορισθούν οι γραμμές του πίνακα, οι οποίες ικανοποιούν μία συνθήκη θ, η οποία μπορεί να είναι απλή ή σύνθετη, και να μετέχουν σε αυτή μία ή περισσότερες στήλες του πίνακα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Η γραμμική αναζήτηση (linear search) ή πλήρης αναζήτηση(full scan) εξετάζει όλες τις γραμμές του πίνακα για να διαπιστωθεί αν ισχύει η συνθήκη θ. • Η γραμμική αναζήτηση εφαρμόζεται όταν: • ο πίνακας δεν είναι ταξινομημένος, • ο πίνακας είναι ταξινομημένος ως προς μια στήλη που δεν συμμετέχει στην συνθήκη θ, • ο πίνακας είναι αποτέλεσμα άλλων πράξεων (ενδιάμεσο αποτέλεσμα) ή δεν υπάρχουν κατάλογοι που μπορούν να χρησιμοποιηθούν.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Το κόστος της γραμμικής αναζήτησης σε αριθμό προσπελάσεων είναι: • Αν η αναζήτηση πραγματοποιείται με βάση συνθήκη ισότητας σε στήλη που είναι κλειδί, τότε το πολύ μία γραμμή του πίνακα θα ικανοποιεί τη συνθήκη. • Στη μέση περίπτωση θα απαιτηθεί η εξέταση του μισού πίνακα έως ότου βρεθεί η αναζητούμενη τιμή του κλειδιού, επομένως το κόστος σε αριθμό προσπελάσεων είναι:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Η δυαδική αναζήτηση (binary search) εφαρμόζεται σε ταξινομημένο πίνακα όταν περιέχει συνθήκη ισότητας ως προς τη στήλη που είναι ταξινομημένος ο πίνακας. • Το κόστος επεξεργασίας είναι: • ο πρώτος όρος είναι ο αριθμός προσπελάσεων που απαιτού-νται για τον προσδιορισμό της πρώτης γραμμής ικανοποίησης της συνθήκης, • ο δεύτερος όρος είναι ο αριθμός προσπελάσεων που απαιτούνται για την αναγνώριση όλων των γραμμών που ικανοποιούν την συνθήκη.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ισότητα στο πρωτεύον κλειδί με χρήση καταλόγου. • Απαιτούνται τόσες προσπελάσεις όσο είναι το ύψος του καταλόγου και μια επιπλέον για την προσπέλαση του τμήματος του πίνακα, που βρίσκεται αποθηκευμένη η γραμμή με την αναζητούμενη τιμή κλειδιού:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ισότητα σε στήλη που δεν είναι κλειδί με χρήση καταλόγου. • Όταν η στήλη δεν είναι κάποιο κλειδί του πίνακα, η συνθήκη ισότητας ενδέχεται να ικανοποιείται για περισσότερες από μία γραμμές. • Από τις στατιστικές πληροφορίες γνωρίζουμε ότι sc(X,a) γραμμές του πίνακα ικανοποιούν τη συνθήκη ισότητας για τη στήλη a σε μία τυπική περίπτωση.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Το κόστος επεξεργασίας είναι: • Στην περίπτωση που ο κατάλογος δεν ομαδοποιεί τις γραμμές ως προς τη συγκεκριμένη στήλη, τότε το κόστος επεξεργασίας είναι:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Πρωτεύοντος καταλόγου. • Αρχικά προσδιορίζεται η γραμμή του πίνακα, η οποία ικανοποιεί τη συνθήκη ισότητας. • Στη συνέχεια προσπελαύνονται όλες οι προηγούμενες ή όλες οι επόμενες γραμμές ανάλογα με τη συνθήκη ανισότητας. • Το κόστος επεξεργασίας είναι:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Τα φύλλα του Β+-δένδρου είναι οργανωμένα με συνδεδεμένη λίστα. • Μετά την εύρεση της πρώτης τιμής οι επόμενες προσπελαύονται ακολουθώντας τους δείκτες. • Ακολουθώντας τους δείκτες εγγραφών που υπάρχουν στα φύλλα μπορούμε ναπροσπελάσουμε τις αντίστοιχες γραμμές του πίνακα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Αν υποθέτουμε ότι οι μισές γραμμές του πίνακα ικανοποιούν τη συνθήκη ανισότητας, τότε ο αριθμός προσπελάσεων είναι: • Με όμοιο τρόπο επεξεργαζόμαστε ερωτήματα διαστήματος που θέτουν επάνω και κάτω φράγμα στην τιμή μιας στήλης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη.Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Αν μια στήλη που συμμετέχει στη συνθήκη έχει κατάλογο ή ο πίνακας είναι ταξινομημένος ως προς τις τιμές της στήλης, τότε: • χρησιμοποιείται ένας από τους αλγόριθμους επεξεργασίας, και • οι γραμμές του πίνακα ελέγχονται μία προς μία ως προς την ικανοποίηση των άλλων συνθηκών. • Αν η συνθήκη της επιλογής περιέχει μία η περισσότερες απλούστερες συνθήκες ισότητας και υπάρχει κατάλογος ή δομή κατακερματισμού για τις στήλες αυτές, τότε: • χρησιμοποιούμε τον κατάλογο ώστε να προσδιορισθεί ένα σύνολο γραμμών.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη. Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Αν υπάρχουν δευτερεύοντες κατάλογοι για μία ή περισ-σότερες στήλες του πίνακα και η συνθήκη επιλογής πε-ριέχει απλούστερες συνθήκες ισότητας, τότε μπορούμε να χρησιμοποιήσουμε τους δείκτες εγγραφών για τον προσδιορισμό της απάντησης. • Διαδικασία επιλογής: • συγκεντρώνονται οι δείκτες εγγραφών, και • προσδιορίζονται οι δείκτες εγγραφών που είναι κοινοί.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή • Επιλογή με σύνθετη συνθήκη.Υποσυνθήκες συνδυασμένες με το λογικό τελεστή . • Στην περίπτωση αυτή απαιτείται η ύπαρξη καταλόγων ή διάταξης των δεδομένων για όλες τις υποσυνθήκες. • Η πράξη της επιλογής εκτελείται χωριστά για κάθε υποσυνθήκη και στη συνέχεια πραγματοποιείται ένωση των αποτελεσμάτων. • Αν υπάρχει έστω και μία υποσυνθήκη για την οποία δεν μπορεί να χρησιμοποιηθεί κάποιος κατάλογος, τότε η μόνη λύση είναι η γραμμική αναζήτηση όπου ελέγχονται όλες οι υποσυνθήκες ταυτόχρονα για κάθε γραμμή του πίνακα που εξετάζεται.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Η πράξη της προβολής επιστρέφει τις τιμές ενός υποσυνόλου στηλών ενός πίνακα ή μίας έκφρασης. • Η επεξεργασία της πράξης της προβολής αποτελείται από δύο στάδια: • απαλοιφή των στηλών που δεν ενδιαφέρουν το ερώτημα, και • απαλοιφή των διπλοτύπων (γραμμών με ίδιες τιμές σε όλες τις επιλεγόμενες στήλες).
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Προβολή με Ταξινόμηση P1. • Οι γραμμές ταξινομούνται ως προς όλες τις στήλες, έτσι ώστε αν δύο ή περισσότερες γραμμές έχουν ίδιες τιμές για τις αντίστοιχες στήλες να είναι γειτονικές στην τελική διάταξη. • Aν μία γραμμή εμφανίζεται περισσότερο από μία φορά, τότε οι επιπλέον εμφανίσεις διαγράφονται από το τελικό αποτέλεσμα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή • Προβολή με Κατακερματισμό (P2). • Αρχικά εφαρμόζεται μία συνάρτηση κατακερματισμού h(x_1,...,xN). • Κάθε φορά που επιλέγεται ο κάδος, όπου αντιστοιχεί μία γραμμή, πραγματοποιείται έλεγχος αν υπάρχει όμοια γραμμή στο συγκεκριμένο κάδο. • αν βρεθεί γραμμή με τις ίδιες τιμές στηλών, τότε η νέα γραμμή δεν εισάγεται στον κάδο, ενώ • αν δεν υπάρχει όμοια γραμμή, τότε η νέα γραμμή εισάγεται στον κάδο και η μέθοδος συνεχίζεται μέχρι να εξαντληθούν όλες οι γραμμές.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση • Είναι χρονοβόρα πράξη και για αυτό έχουν προταθεί πολλοί απαιτούνται αποδοτικοί αλγόριθμοι: • μέθοδος εμφωλιασμένων βρόχων (nested loops), • μέθοδος εμφωλιασμένων βρόχων με τμήματα(block nested loops), • μέθοδος εμφωλιασμένων βρόχων με κατάλογο(indexed nested loops), • μέθοδος ταξινόμησης-συγχώνευσης (sort-merge), • μέθοδος κατακερματισμού (hash join), και • μέθοδος καταλόγου σύνδεσης (join index).
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση • Μέθοδος φωλιασμένων βρόχων - J1. • Για κάθε μία από τις γραμμές x X ελέγχουμε αν υπάρχουν γραμμές y Y, έτσι ώστε να ικανοποιείται η συνθήκη της σύνδεσης. • Δύο είναι τα βασικά πλεονεκτήματα της μεθόδου: • υλοποιείται εύκολα, και • χρησιμοποιείται για οποιαδήποτε συνθήκη σύνδεσης θ. • Η απόδοση της μεθόδου είναι ικανοποιητική για μικρά μεγέθη πινάκων. • Στην περίπτωση αυτή το κόστος ισούται με τον αριθμό προσπελάσεων των τμημάτων των δύο πινάκων: