Βελτιστοποίηση και Επεξεργασία Ερωτημάτων 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, έτσι ώστε να ικανοποιείται η συνθήκη της σύνδεσης. Δύο είναι τα βασικά πλεονεκτήματα της μεθόδου: υλοποιείται εύκολα, και χρησιμοποιείται για οποιαδήποτε συνθήκη σύνδεσης θ. Η απόδοση της μεθόδου είναι ικανοποιητική για μικρά μεγέθη πινάκων. Στην περίπτωση αυτή το κόστος ισούται με τον αριθμό προσπελάσεων των τμημάτων των δύο πινάκων:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος φωλιασμένων βρόχων με σελίδες - J2 . Όταν τα μεγέθη των πινάκων δεν επιτρέπουν την εξο-λοκλήρου αποθήκευση στην κύρια μνήμη, χρησιμοποι-είται η μέθοδος φωλιασμένων βρόχων κατά σελίδες. Η προσπέλαση στις γραμμές πραγματοποιείται τμηματικά, ώστε να διαβάζεται κάθε φορά ένα σύνολο γραμμών και όχι κάθε γραμμή χωριστά. Έτσι πραγματοποιούνται λιγότερες προσπελάσεις στο δίσκο και η πράξη της σύνδεσης εκτελείται αποδοτικότερα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος φωλιασμένων βρόχων με κατάλογο – J3 . Αυτή η μέθοδος χρησιμοποιείται όταν ο πίνακας διαθέτει έναν κατάλογο ως προς τη στήλη που ορίζεται η συνθήκη σύνδεσης. Γίνεται μια αναζήτηση στον κατάλογο ώστε να βρεθούν οι γραμμές που έχουν την ίδια τιμή στη συγκεκριμένη στήλη. Για κάθε γραμμή του πίνακα X πραγματοποιείται μία πράξη επιλογής με κατάλογο στον πίνακα Y.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Αν nx και ny οι γραμμές των πινάκων Χ και Y, τότε το κόστος είναι: όπου C το κόστος επιλογής με χρήση καταλόγου. Η μέθοδος χρησιμοποιείται όταν η συνθήκη σύνδεσης περιέχει τελεστή ισότητας. Στα Β+-δένδρα χρησιμοποιείται και για τους τελεστές και .
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος ταξινόμησης-συγχώνευσης - J4. Η μέθοδος αυτή χρησιμοποιείται σε δύο πίνακες για την επεξεργασία: της πράξης της φυσικής σύνδεσης, ή της σύνδεσης θ όταν έχουμε συνθήκη ισότητας. Προϋπόθεση: η ταξινόμηση των πινάκων ως προς τις κοινές στήλες. Όταν δεν ισχύει η προϋπόθεση, τότε οι πίνακες ταξινομούνται και συγχωνεύονται οι γραμμές των πινάκων. Το κόστος σε ταξινομημένους πίνακες είναι:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος κατακερματισμού – J5. Η μέθοδος αυτή χρησιμοποιείται σε δύο πίνακες για την επεξεργασία: της πράξης της φυσικής σύνδεσης, ή της σύνδεσης θ όταν έχουμε συνθήκη ισότητας. Στο πρώτο στάδιο χρησιμοποιείται μια συνάρτηση κατακερματισμού, οπότε προκύπτουν δύο σύνολα κάδων με γραμμές των δύο πινάκων που έχουν την ίδια τιμή κατακερματισμού για τις στήλες σύνδεσης. Στο δεύτερο στάδιο, ελέγχονται τα ζεύγη των κάδων είτε με τη μέθοδο φωλιασμένων βρόχων είτε με τη μέθοδο ταξινόμησης-συγχώνευσης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Θεωρούμε ότι h(k)=k mod 9 στη στήλη a.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος κατακερματισμού – J5. Υποθέτουμε ότι δεν συμβαίνει υπερχείλιση σε κάποιο κάδο και ότι ο πίνακας κατακερματισμού αποθηκεύεται στην κύρια μνήμη. Το κόστος επεξεργασίας περιλαμβάνει: ανάγνωση των γραμμών των πινάκων, δημιουργία και αποθήκευση των κάδων στο δίσκο, και ανάγνωση των κάδων. Σύμφωνα με τα προηγούμενα, το κόστος είναι:
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος καταλόγου σύνδεσης – J6. Όταν η πράξη σύνδεσης εκτελείται πολλές φορές, μια καλή πρακτική είναι η αποθήκευση του αποτελέσματος της σύνδεσης. Η αποθήκευση γίνεται με τη βοήθεια ενός καταλόγου σύνδεσης που είναι ένας πίνακας με δύο στήλες a και b: στη στήλη a αποθηκεύονται δείκτες προς τις γραμμές του πρώτου πίνακα, και στη στήλη b δείκτες προς τις γραμμές του δεύτερου.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση Μέθοδος καταλόγου σύνδεσης – J6. Πλεονεκτήματα: Η χρήση του καταλόγου σύνδεσης αυξάνει την αποδοτικότητα της σύνδεσης όταν απαιτείται η εκτέλεση της πράξης πολλές φορές. Μειονεκτήματα: Κάθε φορά που πραγματοποιούνται εισαγωγές, διαγραφές ή ενημερώσεις δεδομένων στους πίνακες πρέπει να ενημερώνεται και ο κατάλογος σύνδεσης.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά Για την πράξη της ένωσης (XY) κάθε γραμμή εγγράφεται μία μόνο φορά στο τελικό αποτέλεσμα (απαλοιφή διπλοτύπων). Για την πράξη της τομής (XY) στο τελικό αποτέλεσμα περιλαμβάνονται μόνο οι κοινές γραμμές. Για την πράξη της διαφοράς (X–Y) στο αποτέλεσμα περιλαμβάνονται μόνο οι γραμμές που ανήκουν στον πίνακα X αλλά όχι στον Y.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά Η επεξεργασία των πράξεων αυτών πραγματοποιείται σε δύο στάδια: ταξινόμηση των πινάκων βάσει των κοινών στηλών, και συνδυασμός των διατάξεων ώστε να προκύψει το τελικό αποτέλεσμα. Μετά την ταξινόμηση απαιτείται μόνο μία ανάγνωση της κάθε γραμμής, όπως και στην περίπτωση της σύνδεσης με ταξινόμηση-συγχώνευση.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά Εναλλακτικά, μπορεί να χρησιμοποιηθεί η μέθοδος του κατακερματισμού: αρχικά εφαρμόζεται η συνάρτηση κατακερματισμού στον πίνακα X, στη συνέχεια, ακολουθεί η εφαρμογή της συνάρτησης κατακερματισμού στον πίνακα Y, εφόσον δύο κοινές γραμμές x X και y Y κατακερματί-ζονται στην ίδια θέση, είναι εύκολο να προσδιορίσουμε αν η γραμμή y θα συμμετέχει ή όχι στο τελικό αποτέλεσμα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά Για την πράξη της ένωσης, η γραμμή y δεν θα εγγραφεί στο αποτέλεσμα αν υπάρχει ήδη άλλη κοινή γραμμή. Για την πράξη της τομής, η γραμμή y θα εγγραφεί στο αποτέλεσμα μόνο αν υπάρχει και άλλη κοινή γραμμή x Χ. Τέλος, για την πράξη της διαφοράς, αν υπάρχει γραμμή x όμοια με την y, τότε καμία δεν θα εγγραφεί στο τελικό αποτέλεσμα.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση Η ταξινόμηση χρησιμοποιείται: έμμεσα ως ενδιάμεσο στάδιο κατά την επεξεργασία άλλων πράξεων, ή άμεσα κατόπιν εντολής του χρήστη. Η πιο διαδεδομένη μέθοδος είναι η ταξινόμηση με συγχώνευση (merge-sort).
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση Έστω N οι γραμμές του πίνακα προς ταξινόμηση και n οι γραμμές που αποθηκεύονται στην κύρια μνήμη. Τα βήματα της μεθόδου είναι: ο πίνακας χωρίζεται σε Μ=Ν/n τμήματα με το πολύ n γραμμές το καθένα, τα M τμήματα ταξινομούνται χωριστά, χρησιμοποιώντας έναν αλγόριθμο ταξινόμησης κύριας μνήμης, τα M ταξινομημένα τμήματα συγχωνεύονται ανά δύο και παίρνουμε M/2 ταξινομημένα τμήματα με διπλάσιο αριθμό γραμμών το καθένα, το βήμα 3 επαναλαμβάνεται μέχρι να προκύψει μόνο ένα ταξινομημένο τμήμα με N γραμμές.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση Πρέπει να υπάρχει διαθέσιμη τουλάχιστον μία σελίδα μνήμης, η οποία χρησιμοποιείται για την αποθήκευση του αποτελέσματος. Μόλις η σελίδα εξόδου γεμίσει, αποθηκεύεται στο δίσκο. Μετά το πέρας της διαδικασίας ταξινόμησης, ο ταξινο-μημένος πίνακας είναι αποθηκευμένος στο δίσκο και μπορεί να χρησιμοποιηθεί για περαιτέρω πράξεις. Στη γενική περίπτωση συγχωνεύονται ταυτόχρονα m ταξινομημένα τμήματα και η μέθοδος καλείται ταξινόμηση με συγχώνευση m δρόμων.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση Παράδειγμα συγχώνευσης 2 δρόμων. Κάθε αρχικό τμήμα αποτελείται από 3 γραμμές πίνακα. Ο πίνακας περιέχει 12 γραμμές και ο αρχικός αριθμός των ταξινομημένων τμημάτων είναι M=12/3=4. Η ταξινόμηση πραγματοποιείται ως προς τη στήλη a.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση Παράδειγμα συγχώνευσης 2 δρόμων.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Βελτιστοποίηση βασισμένη στο κόστος Η επιλογή του κατάλληλου αλγορίθμου εξαρτάται: από τη φύση του ερωτήματος, από το μέγεθος των πινάκων, και από το μέγεθος των ενδιάμεσων αποτελεσμάτων. Το τελικό πλάνο εκτέλεσης παράγεται μετά τον προσδιορισμό του τελικού δένδρου έκφρασης και την αντιστοίχιση των πράξεων του δένδρου έκφρασης με αντίστοιχους αλγορίθμους επεξεργασίας.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εξαγωγή αποτελέσματος Για την αποτελεσματικότερη επεξεργασία ενός ερωτη-ματος πρέπει να μελετηθεί και ο τρόπος συνδυασμού των αποτελεσμάτων των ενδιάμεσων αποτελεσμάτων. Δύο μέθοδοι υπάρχουν: Επεξεργασία με προσωρινή αποθήκευση. Το συνολικό κόστος επεξεργασίας είναι μεγαλύτερο από το άθροισμα του κόστους των επιμέρους πράξεων. Επεξεργασία με διοχέτευση. Αποφεύγεται η προσωρινή αποθήκευση των αποτελεσμάτων και αυξάνεται η ταχύτητα επεξεργασίας.
Κεφάλαιο 14: Βελτιστοποίηση και Επεξεργασία Ερωτημάτων Εξαγωγή αποτελέσματος