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

1 4

  • Upload
    duer

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 1 4

14Βελτιστοποίηση και Επεξεργασία

Ερωτημάτων

Αλγεβρικοί μετασχηματισμοί

Ευριστική βελτιστοποίηση

Υλοποίηση πράξεων και Εκτίμηση κόστους

Εξαγωγή αποτελέσματος

Page 2: 1 4

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

Εισαγωγή

• Η διατύπωση ενός ερωτήματος προς το ΣΔΒΔ πραγματοποιείται συνήθως σε μία γλώσσα βάσης δεδομένων υψηλού επιπέδου (όπως η SQL).

• Οι γλώσσες αυτές αποδεσμεύουν το χρήστη από λεπτομέρειες υλοποίησης καθώς δεν περιέχουν τον τρόπο εκτέλεσης του ερωτήματος.

• Η μέθοδος που θα επιλεγεί για την εκτέλεση του ερωτήματος και την εξαγωγή του αποτελέσματος είναι υπευθυνότητα του ΣΔΒΔ.

Page 3: 1 4

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

Εισαγωγή

• Πριν την εκτέλεση ενός ερωτήματος προηγείται βελτι-

στοποίηση για μείωση του χρόνου επεξεργασίας ώστε

να προσδιοριθεί:

– η σειρά προσπέλασης των δεδομένων,

– ποιοι κατάλογοι θα χρησιμοποιηθούν,

– πόση μνήμη θα δευσμευτεί, και

– ποια αρχεία δεδομένων απαιτούνται.

Page 4: 1 4

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

Εισαγωγή

• Δημιουργείται ένα πλάνο εκτέλεσης ερωτήματος που περιέχει όλες τις απαραίτητες πληροφορίες.

• Το πλάνο εκτέλεσης περιέχει: – τη σειρά εκτέλεσης των πράξεων,

– πληροφορίες σχετικά με το ποια μέθοδος θα χρησιμοποιηθεί για την επεξεργασία κάθε πράξης.

• Το πλάνο εκτέλεσης διοχετεύεται στη μηχανή εκτέλεσης, όπου διεκπεραιώνεται: – η επεξεργασία του ερωτήματος, και

– η παραγωγή του τελικού αποτελέσματος.

Page 5: 1 4

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

Μηχανή εκτέλεσης

Page 6: 1 4

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

Εισαγωγή

• Λόγοι καθυστέρησης ερωτήματος:

– Προσπελάσεις στο δίσκο

• Χρόνος προσπέλασης για την ανάγνωση μιας μονάδας πληροφορίας

– Κύκλοι CPU

• Πολύπλοκες πράξεις

– Διαθέσιμη μνήμη

• Μεγαλύτερη μνήμη λιγότερες προσπελάσεις στο δίσκο.

Page 7: 1 4

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

Εισαγωγή

• Στάδια βελτιστοποίησης:– αλλαγή του τρόπου διατύπωσης του ερωτήματος μέσω

αλγεβρικών μετασχηματισμών,

– προσδιορισμός των εναλλακτικών λύσεων για την υλοποίηση των πράξεων της σχεσιακής άλγεβρας,

– έλεγχος του κόστους επεξεργασίας των διαφόρων πράξεων του ερωτήματος, ώστε να προσδιορισθεί η σειρά εκτέλεσης και η μέθοδος που θα χρησιμοποιηθεί για κάθε πράξη.

Page 8: 1 4

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

Εισαγωγή

• Δυναμική διαδικασία βελτιστοποίησης:

– το ερώτημα βελτιστοποιείται κάθε φορά που απαιτείται η

επεξεργασία του,

– υπάρχει η εγγύηση ότι πάντα το επιλεγόμενο πλάνο εκτέλεσης

επιλέγεται με βάση τα τρέχοντα δεδομένα της βάσης,

– όμως πρέπει να δαπανηθεί ένα χρονικό διάστημα για την

ολοκλήρωση της διαδικασίας βελτιστοποίησης.

Page 9: 1 4

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

Εισαγωγή

• Στατική διαδικασία βελτιστοποίησης:– ενεργεί μία μόνο φορά σε κάθε ερώτημα,

– αποφεύγεται το επιπλέον χρονικό κόστος για την επιλογή ενός καλού πλάνου απάντησης,

– ένα πλάνο που θεωρείται καλό για τη συγκεκριμένη χρονική στιγμή, μπορεί να μην είναι τόσο αποδοτικό την επόμενη φορά που θα απαιτηθεί η επεξεργασία του ερωτήματος, λόγω των αλλαγών στη βάση δεδομένων.

• Η στατική και δυναμική βελτιστοποίηση μπορούν να συνδυασθούν ώστε να προκύψει ένα υβριδικό σχήμα.

Page 10: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Οι αλγεβρικοί μετασχηματισμοί χρησιμοποιούν ισο-δυναμίες μεταξύ εκφράσεων της σχεσιακής άλγεβρας, ώστε το ερώτημα που προκύπτει να είναι ισοδύναμο με το αρχικό.

• Μπορούμε να δημιουργήσουμε πολλά διαφορετικά πλάνα εκτέλεσης ενός ερωτήματος, και στη συνέχεια να επιλέξουμε ένα αποδοτικό πλάνο για την επεξεργασία του.

Page 11: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Χρησιμοποιούμενα σύμβολα:– X, Y, Z είναι εκφράσεις της Σχεσιακής Άλγεβρας,

– a, a1, …, aN, b, b1, …, bN, c, c1, …, cN είναι στήλες ενός ή

περισσοτέρων πινάκων,

– A, B, C είναι σύνολα στηλών, και

– p, q, w είναι συνθήκες.

Page 12: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Κανόνες μετασχηματισμού

Page 13: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Κανόνες μετασχηματισμού

Page 14: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Ένα δένδρο έκφρασης (expression tree) περιγράφει σχηματικά τις πράξεις που λαμβάνουν χώρα.

• Ο κάθε κανόνας μετατρέπει το ένα δένδρο έκφρασης σε ένα άλλο ισοδύναμό του.

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

• Η ροή των δεδομένων γίνεται από κάτω προς τα πάνω. • Μία ζεύξη μεταξύ δύο κόμβων δηλώνει ότι το αποτέ-

λεσμα του χαμηλότερου κόμβου μεταβιβάζεται ως είσοδος στον υψηλότερο κόμβο.

Page 15: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Δένδρα Έκφρασης

Page 16: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Παράδειγμα: Άρθρο και Γνωστική περιοχή

Page 17: 1 4

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

Αλγεβρικοί μετασχηματισμοί

• Παράδειγμα: ερώτημα σε SQL.

SELECT Άρθρο.κωδικός, Γνωστική_Περιοχή.τίτλοςFROM Άρθρο, Γνωστική_ΠεριοχήWHERE Άρθρο.κωδικός_γνωστικής_περιοχής = Γνωστική_Περιοχή.κωδικός AND Γνωστική_Περιοχή.αριθμός_συνδρομητών > 100

Page 18: 1 4

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

Page 19: 1 4

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

Page 20: 1 4

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

Page 21: 1 4

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

Ευριστική βελτιστοποίηση

• Η ευριστική βελτιστοποίηση (heuristic optimization)

χρησιμοποιεί τους κανόνες μετασχηματισμού των

εκφράσεων της σχεσιακής άλγεβρας με στόχο την

παραγωγή ενός αποδοτικού πλάνου εκτέλεσης.

• Η μεθοδολογία αυτή καλείται “ευριστική” διότι δεν

υπάρχει εγγύηση ότι το πλάνο εκτέλεσης που θα

προκύψει θα είναι πάντα και το βέλτιστο δυνατό.

Page 22: 1 4

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

Ευριστική βελτιστοποίηση

• Η απόδοση ενός πλάνου εκτέλεσης δεν εξαρτάται μόνο από το είδος των πράξεων που μετέχουν στο ερώτημα αλλά και από άλλες παραμέτρους, όπως τον αριθμό των γραμμών των πινάκων.

• Η ευριστική βελτιστοποίηση υλοποιείται εύκολα και λόγω της γρήγορης εκτέλεσής της μπορεί να χρησιμοποιηθεί τόσο σε στατική όσο και σε δυναμική βελτιστοποίηση.

Page 23: 1 4

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

Ευριστική βελτιστοποίηση

• Κανόνας 1: Οι πράξεις της επιλογής πρέπει να εκτελούνται όσο νωρίτερα γίνεται.

• Κανόνας 2: Οι πράξεις της προβολής πρέπει να εκτελούνται όσο νωρίτερα γίνεται.

Page 24: 1 4

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

Ευριστική βελτιστοποίηση

• Κανόνας 3: Συνδυασμός της πράξης του καρτεσιανού γινομένου με τη συνθήκη της πράξης επιλογής, έτσι ώστε να δημιουργηθεί μία πράξη σύνδεσης.

• Το καρτεσιανό γινόμενο δύο πινάκων είναι χρονοβόρα πράξη.

• Εάν υπάρχει στο ερώτημα συνθήκη επιλογής μπορούμε να χρησιμοποιήσουμε μία πράξη σύνδεσης, που είναι αποδοτικότερη από άποψη χρόνου.

• Ο κανόνας αυτός χρησιμοποιεί τον ορισμό της σύνδεσης:

Page 25: 1 4

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

Ευριστική βελτιστοποίηση

• Κανόνας 4: Οι πράξεις επιλογής και σύνδεσης, οι οποίες παράγουν το μικρότερο αποτέλεσμα πρέπει να εκτελούνται πρώτες.

• Στόχος του κανόνα είναι ο περιορισμός του μεγέθους των ενδιάμεσων αποτελεσμάτων εκτελώντας πρώτα τις πράξεις που περιορίζουν το μέγεθος των δεδομένων.

• Για να εφαρμοσθεί ο κανόνας απαιτείται η γνώση του μεγέθους του αποτελέσματος που παράγουν οι πράξεις επιλογής και σύνδεσης.

Page 26: 1 4

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

Ευριστική βελτιστοποίηση

• Κανόνας 5: Οι κοινές εκφράσεις πρέπει να υπολογίζο-νται μία μόνο φορά, και το αποτέλεσμα αποθηκεύεται για να χρησιμοποιηθεί στη συνέχεια.

• Η εφαρμογή του κανόνα είναι εφικτή αν το αποτέλεσμα της πράξης είναι αρκετά μικρό ώστε να μπορεί να αποθηκευθεί στην κύρια μνήμη.

• Αν το αποτέλεσμα πρέπει να αποθηκευθεί στη δευτε-ρεύουσα μνήμη, τότε η χρήση του κανόνα έχει νόημα μόνο αν το κόστος προσπέλασης στο δίσκο είναι μικρό-τερο από το κόστος επανα-υλοπογισμού της έκφρασης.

Page 27: 1 4

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

Ευριστική βελτιστοποίηση

• Παράδειγμα: Έστω το ερώτημα όπου Χ και Υ πίνακες και θ μια συνθήκη που χρησιμοποιεί μόνο στήλες του πίνακα Υ.

• Σύμφωνα με τον πρώτο ευριστικό κανόνα η πράξη της επιλογής θα εκτελεστεί πριν την σύνδεση.

Page 28: 1 4

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

Ευριστική βελτιστοποίηση

• Υπόθεση: το X είναι αρκετά μικρότερο του Y και

υπάρχει ένας κατάλογος σύνδεσης μεταξύ των X

και Y, ο οποίος δεν χρησιμοποιεί τις στήλες που

αναφέρονται στη συνθήκη θ.

• Το να εκτελεσθεί η πράξη της επιλογής πριν την

πράξη της σύνδεσης ίσως να μην έχει το επιθυμητό

αποτέλεσμα από πλευράς κόστους επεξεργασίας.

Page 29: 1 4

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

Ευριστική βελτιστοποίηση

• Αυτό συμβαίνει διότι μετά την εκτέλεση της πράξης επιλογής στον πίνακα X θα πρέπει να εξετασθούν οι γραμμές του Y μία-προς-μία, διότι δεν μπορεί να γίνει χρήση του καταλόγου σύνδεσης.

• Το γεγονός αυτό ίσως αυξήσει το κόστος επεξεργασίας και επομένως η επιλογή ενός αποδοτικού πλάνου εκτέλεσης να μην είναι επιτυχής.

Page 30: 1 4

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

Υλοποίηση πράξεων και Εκτίμηση κόστους

• Χρησιμοποιούνται και τεχνικές εκτίμησης κόστους εκτός της ευριστικής βελτιστοποίησης.

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

Page 31: 1 4

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

Υλοποίηση πράξεων και Εκτίμηση κόστους

• Στατιστικές πληροφορίες που αποθηκεύονται στον κατάλογο συστήματος του ΣΔΒΔ.

Page 32: 1 4

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

Υλοποίηση πράξεων και Εκτίμηση κόστους

• Οι στατιστικές πληροφορίες πρέπει να ενημερώνονται όποτε υπάρχουν αλλαγές στα δεδομένα των πινάκων.

• Η συνεχής ενημέρωση συνεπάγεται σημαντικό κόστος.• Οι ενημερώσεις γίνονται κατά διαστήματα όταν ο

φόρτος του συστήματος είναι μικρός.• Οι συμβολισμοί που χρησιμοποιούνται είναι:

– επιλογή Si

– προβολή Pi

– σύνδεση Ji

όπου i δηλώνει τη μέθοδο επεξεργασίας της αντίστοιχης πράξης.

Page 33: 1 4

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

• Στόχος είναι να προσδιορισθούν οι γραμμές του πίνακα, οι οποίες ικανοποιούν μία συνθήκη θ, η οποία μπορεί να είναι απλή ή σύνθετη, και να μετέχουν σε αυτή μία ή περισσότερες στήλες του πίνακα.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 34: 1 4

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

• Η γραμμική αναζήτηση (linear search) ή πλήρης αναζήτηση (full scan) εξετάζει όλες τις γραμμές του πίνακα για να διαπιστωθεί αν ισχύει η συνθήκη θ.

• Η γραμμική αναζήτηση εφαρμόζεται όταν:– ο πίνακας δεν είναι ταξινομημένος,

– ο πίνακας είναι ταξινομημένος ως προς μια στήλη που δεν συμμετέχει στην συνθήκη θ,

– ο πίνακας είναι αποτέλεσμα άλλων πράξεων (ενδιάμεσο αποτέλεσμα) ή δεν υπάρχουν κατάλογοι που μπορούν να χρησιμοποιηθούν.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 35: 1 4

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

• Το κόστος της γραμμικής αναζήτησης σε αριθμό προσπελάσεων είναι:

• Αν η αναζήτηση πραγματοποιείται με βάση συνθήκη ισότητας σε στήλη που είναι κλειδί, τότε το πολύ μία γραμμή του πίνακα θα ικανοποιεί τη συνθήκη.

• Στη μέση περίπτωση θα απαιτηθεί η εξέταση του μισού πίνακα έως ότου βρεθεί η αναζητούμενη τιμή του κλειδιού, επομένως το κόστος σε αριθμό προσπελάσεων είναι:

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 36: 1 4

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

• Η δυαδική αναζήτηση (binary search) εφαρμόζεται σε ταξινομημένο πίνακα όταν περιέχει συνθήκη ισότητας ως προς τη στήλη που είναι ταξινομημένος ο πίνακας.

• Το κόστος επεξεργασίας είναι:– ο πρώτος όρος είναι ο αριθμός προσπελάσεων που απαιτού-

νται για τον προσδιορισμό της πρώτης γραμμής ικανοποίησης της συνθήκης,

– ο δεύτερος όρος είναι ο αριθμός προσπελάσεων που απαιτούνται για την αναγνώριση όλων των γραμμών που ικανοποιούν την συνθήκη.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 37: 1 4

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

• Ισότητα στο πρωτεύον κλειδί με χρήση καταλόγου.

• Απαιτούνται τόσες προσπελάσεις όσο είναι το ύψος του καταλόγου και μια επιπλέον για την προσπέλαση του τμήματος του πίνακα, που βρίσκεται αποθηκευμένη η γραμμή με την αναζητούμενη τιμή κλειδιού:

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 38: 1 4

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

• Ισότητα σε στήλη που δεν είναι κλειδί με χρήση καταλόγου.

• Όταν η στήλη δεν είναι κάποιο κλειδί του πίνακα, η συνθήκη ισότητας ενδέχεται να ικανοποιείται για περισσότερες από μία γραμμές.

• Από τις στατιστικές πληροφορίες γνωρίζουμε ότι sc(X,a) γραμμές του πίνακα ικανοποιούν τη συνθήκη ισότητας για τη στήλη a σε μία τυπική περίπτωση.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 39: 1 4

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

• Το κόστος επεξεργασίας είναι:

• Στην περίπτωση που ο κατάλογος δεν ομαδοποιεί τις γραμμές ως προς τη συγκεκριμένη στήλη, τότε το κόστος επεξεργασίας είναι:

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 40: 1 4

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

• Ανισότητα με χρήση Πρωτεύοντος καταλόγου.

• Αρχικά προσδιορίζεται η γραμμή του πίνακα, η οποία ικανοποιεί τη συνθήκη ισότητας.

• Στη συνέχεια προσπελαύνονται όλες οι προηγούμενες ή όλες οι επόμενες γραμμές ανάλογα με τη συνθήκη ανισότητας.

• Το κόστος επεξεργασίας είναι:

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 41: 1 4

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

• Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Τα φύλλα του Β+-δένδρου είναι οργανωμένα με

συνδεδεμένη λίστα.• Μετά την εύρεση της πρώτης τιμής οι επόμενες

προσπελαύονται ακολουθώντας τους δείκτες.• Ακολουθώντας τους δείκτες εγγραφών που υπάρχουν

στα φύλλα μπορούμε να προσπελάσουμε τις αντίστοιχες γραμμές του πίνακα.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 42: 1 4

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

• Ανισότητα με χρήση Δευτερεύοντος καταλόγου. • Αν υποθέτουμε ότι οι μισές γραμμές του πίνακα

ικανοποιούν τη συνθήκη ανισότητας, τότε ο αριθμός προσπελάσεων είναι:

• Με όμοιο τρόπο επεξεργαζόμαστε ερωτήματα διαστήματος που θέτουν επάνω και κάτω φράγμα στην τιμή μιας στήλης.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 43: 1 4

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

• Επιλογή με σύνθετη συνθήκη. Υποσυνθήκες συνδυασμένες με το λογικό τελεστή .

• Αν μια στήλη που συμμετέχει στη συνθήκη έχει κατάλογο ή ο πίνακας είναι ταξινομημένος ως προς τις τιμές της στήλης, τότε:– χρησιμοποιείται ένας από τους αλγόριθμους επεξεργασίας, και

– οι γραμμές του πίνακα ελέγχονται μία προς μία ως προς την ικανοποίηση των άλλων συνθηκών.

• Αν η συνθήκη της επιλογής περιέχει μία η περισσότερες απλούστερες συνθήκες ισότητας και υπάρχει κατάλογος ή δομή κατακερματισμού για τις στήλες αυτές, τότε: – χρησιμοποιούμε τον κατάλογο ώστε να προσδιορισθεί ένα σύνολο

γραμμών.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 44: 1 4

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

• Επιλογή με σύνθετη συνθήκη. Υποσυνθήκες συνδυασμένες με το λογικό τελεστή .

• Αν υπάρχουν δευτερεύοντες κατάλογοι για μία ή περισ-σότερες στήλες του πίνακα και η συνθήκη επιλογής πε-ριέχει απλούστερες συνθήκες ισότητας, τότε μπορούμε να χρησιμοποιήσουμε τους δείκτες εγγραφών για τον προσδιορισμό της απάντησης.

• Διαδικασία επιλογής:– συγκεντρώνονται οι δείκτες εγγραφών, και

– προσδιορίζονται οι δείκτες εγγραφών που είναι κοινοί.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 45: 1 4

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

• Επιλογή με σύνθετη συνθήκη. Υποσυνθήκες συνδυασμένες με το λογικό τελεστή .

• Στην περίπτωση αυτή απαιτείται η ύπαρξη καταλόγων ή διάταξης των δεδομένων για όλες τις υποσυνθήκες.

• Η πράξη της επιλογής εκτελείται χωριστά για κάθε υποσυνθήκη και στη συνέχεια πραγματοποιείται ένωση των αποτελεσμάτων.

• Αν υπάρχει έστω και μία υποσυνθήκη για την οποία δεν μπορεί να χρησιμοποιηθεί κάποιος κατάλογος, τότε η μόνη λύση είναι η γραμμική αναζήτηση όπου ελέγχονται όλες οι υποσυνθήκες ταυτόχρονα για κάθε γραμμή του πίνακα που εξετάζεται.

Υλοποίηση πράξεων & Εκτίμηση κόστους – Επιλογή

Page 46: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή

• Η πράξη της προβολής επιστρέφει τις τιμές ενός υποσυνόλου στηλών ενός πίνακα ή μίας έκφρασης.

• Η επεξεργασία της πράξης της προβολής αποτελείται από δύο στάδια: – απαλοιφή των στηλών που δεν ενδιαφέρουν το ερώτημα, και

– απαλοιφή των διπλοτύπων (γραμμών με ίδιες τιμές σε όλες τις επιλεγόμενες στήλες).

Page 47: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή

• Προβολή με Ταξινόμηση P1.

• Οι γραμμές ταξινομούνται ως προς όλες τις στήλες, έτσι ώστε αν δύο ή περισσότερες γραμμές έχουν ίδιες τιμές για τις αντίστοιχες στήλες να είναι γειτονικές στην τελική διάταξη.

• Aν μία γραμμή εμφανίζεται περισσότερο από μία φορά, τότε οι επιπλέον εμφανίσεις διαγράφονται από το τελικό αποτέλεσμα.

Page 48: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Προβολή

• Προβολή με Κατακερματισμό (P2).

• Αρχικά εφαρμόζεται μία συνάρτηση κατακερματισμού h(x_1,...,xN).

• Κάθε φορά που επιλέγεται ο κάδος, όπου αντιστοιχεί μία γραμμή, πραγματοποιείται έλεγχος αν υπάρχει όμοια γραμμή στο συγκεκριμένο κάδο. – αν βρεθεί γραμμή με τις ίδιες τιμές στηλών, τότε η νέα

γραμμή δεν εισάγεται στον κάδο, ενώ

– αν δεν υπάρχει όμοια γραμμή, τότε η νέα γραμμή εισάγεται στον κάδο και η μέθοδος συνεχίζεται μέχρι να εξαντληθούν όλες οι γραμμές.

Page 49: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Είναι χρονοβόρα πράξη και για αυτό έχουν προταθεί πολλοί απαιτούνται αποδοτικοί αλγόριθμοι:– μέθοδος εμφωλιασμένων βρόχων (nested loops),

– μέθοδος εμφωλιασμένων βρόχων με τμήματα (block nested loops),

– μέθοδος εμφωλιασμένων βρόχων με κατάλογο (indexed nested loops),

– μέθοδος ταξινόμησης-συγχώνευσης (sort-merge),

– μέθοδος κατακερματισμού (hash join), και– μέθοδος καταλόγου σύνδεσης (join index).

Page 50: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος φωλιασμένων βρόχων - J1.• Για κάθε μία από τις γραμμές x X ελέγχουμε αν

υπάρχουν γραμμές y Y, έτσι ώστε να ικανοποιείται η συνθήκη της σύνδεσης.

• Δύο είναι τα βασικά πλεονεκτήματα της μεθόδου: – υλοποιείται εύκολα, και – χρησιμοποιείται για οποιαδήποτε συνθήκη σύνδεσης θ.

• Η απόδοση της μεθόδου είναι ικανοποιητική για μικρά μεγέθη πινάκων.

• Στην περίπτωση αυτή το κόστος ισούται με τον αριθμό προσπελάσεων των τμημάτων των δύο πινάκων:

Page 51: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος φωλιασμένων βρόχων με σελίδες - J2 .

• Όταν τα μεγέθη των πινάκων δεν επιτρέπουν την εξο-λοκλήρου αποθήκευση στην κύρια μνήμη, χρησιμοποι-είται η μέθοδος φωλιασμένων βρόχων κατά σελίδες.

• Η προσπέλαση στις γραμμές πραγματοποιείται τμηματικά, ώστε να διαβάζεται κάθε φορά ένα σύνολο γραμμών και όχι κάθε γραμμή χωριστά.

• Έτσι πραγματοποιούνται λιγότερες προσπελάσεις στο δίσκο και η πράξη της σύνδεσης εκτελείται αποδοτικότερα.

Page 52: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος φωλιασμένων βρόχων με κατάλογο – J3 .

• Αυτή η μέθοδος χρησιμοποιείται όταν ο πίνακας διαθέτει έναν κατάλογο ως προς τη στήλη που ορίζεται η συνθήκη σύνδεσης.

• Γίνεται μια αναζήτηση στον κατάλογο ώστε να βρεθούν οι γραμμές που έχουν την ίδια τιμή στη συγκεκριμένη στήλη.

• Για κάθε γραμμή του πίνακα X πραγματοποιείται μία πράξη επιλογής με κατάλογο στον πίνακα Y.

Page 53: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Αν nx και ny οι γραμμές των πινάκων Χ και Y, τότε το κόστος είναι:

όπου C το κόστος επιλογής με χρήση καταλόγου.• Η μέθοδος χρησιμοποιείται όταν η συνθήκη σύνδεσης

περιέχει τελεστή ισότητας.• Στα Β+-δένδρα χρησιμοποιείται και για τους τελεστές

και .

Page 54: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

Page 55: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος ταξινόμησης-συγχώνευσης - J4.

• Η μέθοδος αυτή χρησιμοποιείται σε δύο πίνακες για την επεξεργασία: – της πράξης της φυσικής σύνδεσης, ή

– της σύνδεσης θ όταν έχουμε συνθήκη ισότητας.

• Προϋπόθεση: η ταξινόμηση των πινάκων ως προς τις κοινές στήλες. Όταν δεν ισχύει η προϋπόθεση, τότε οι πίνακες ταξινομούνται και συγχωνεύονται οι γραμμές των πινάκων.

• Το κόστος σε ταξινομημένους πίνακες είναι:

Page 56: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

Page 57: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος κατακερματισμού – J5.• Η μέθοδος αυτή χρησιμοποιείται σε δύο πίνακες για

την επεξεργασία: – της πράξης της φυσικής σύνδεσης, ή – της σύνδεσης θ όταν έχουμε συνθήκη ισότητας.

• Στο πρώτο στάδιο χρησιμοποιείται μια συνάρτηση κατακερματισμού, οπότε προκύπτουν δύο σύνολα κάδων με γραμμές των δύο πινάκων που έχουν την ίδια τιμή κατακερματισμού για τις στήλες σύνδεσης.

• Στο δεύτερο στάδιο, ελέγχονται τα ζεύγη των κάδων είτε με τη μέθοδο φωλιασμένων βρόχων είτε με τη μέθοδο ταξινόμησης-συγχώνευσης.

Page 58: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Θεωρούμε ότι h(k)=k mod 9 στη στήλη a.

Page 59: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος κατακερματισμού – J5.

• Υποθέτουμε ότι δεν συμβαίνει υπερχείλιση σε κάποιο κάδο και ότι ο πίνακας κατακερματισμού αποθηκεύεται στην κύρια μνήμη.

• Το κόστος επεξεργασίας περιλαμβάνει:1. ανάγνωση των γραμμών των πινάκων,

2. δημιουργία και αποθήκευση των κάδων στο δίσκο, και

3. ανάγνωση των κάδων.

• Σύμφωνα με τα προηγούμενα, το κόστος είναι:

Page 60: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος καταλόγου σύνδεσης – J6.

• Όταν η πράξη σύνδεσης εκτελείται πολλές φορές, μια καλή πρακτική είναι η αποθήκευση του αποτελέσματος της σύνδεσης.

• Η αποθήκευση γίνεται με τη βοήθεια ενός καταλόγου σύνδεσης που είναι ένας πίνακας με δύο στήλες a και b:– στη στήλη a αποθηκεύονται δείκτες προς τις γραμμές του

πρώτου πίνακα, και

– στη στήλη b δείκτες προς τις γραμμές του δεύτερου.

Page 61: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Σύνδεση

• Μέθοδος καταλόγου σύνδεσης – J6.

• Πλεονεκτήματα: Η χρήση του καταλόγου σύνδεσης

αυξάνει την αποδοτικότητα της σύνδεσης όταν

απαιτείται η εκτέλεση της πράξης πολλές φορές.

• Μειονεκτήματα: Κάθε φορά που πραγματοποιούνται

εισαγωγές, διαγραφές ή ενημερώσεις δεδομένων στους

πίνακες πρέπει να ενημερώνεται και ο κατάλογος

σύνδεσης.

Page 62: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά

• Για την πράξη της ένωσης (XY) κάθε γραμμή εγγράφεται μία μόνο φορά στο τελικό αποτέλεσμα (απαλοιφή διπλοτύπων).

• Για την πράξη της τομής (XY) στο τελικό αποτέλεσμα περιλαμβάνονται μόνο οι κοινές γραμμές.

• Για την πράξη της διαφοράς (X–Y) στο αποτέλεσμα περιλαμβάνονται μόνο οι γραμμές που ανήκουν στον πίνακα X αλλά όχι στον Y.

Page 63: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά

• Η επεξεργασία των πράξεων αυτών πραγματοποιείται σε δύο στάδια:

1. ταξινόμηση των πινάκων βάσει των κοινών στηλών, και

2. συνδυασμός των διατάξεων ώστε να προκύψει το τελικό αποτέλεσμα.

• Μετά την ταξινόμηση απαιτείται μόνο μία ανάγνωση της κάθε γραμμής, όπως και στην περίπτωση της σύνδεσης με ταξινόμηση-συγχώνευση.

Page 64: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά

• Εναλλακτικά, μπορεί να χρησιμοποιηθεί η μέθοδος του κατακερματισμού: – αρχικά εφαρμόζεται η συνάρτηση κατακερματισμού στον

πίνακα X,

– στη συνέχεια, ακολουθεί η εφαρμογή της συνάρτησης κατακερματισμού στον πίνακα Y,

– εφόσον δύο κοινές γραμμές x X και y Y κατακερματί-ζονται στην ίδια θέση, είναι εύκολο να προσδιορίσουμε αν η γραμμή y θα συμμετέχει ή όχι στο τελικό αποτέλεσμα.

Page 65: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ένωση, Τομή, Διαφορά

• Για την πράξη της ένωσης, η γραμμή y δεν θα εγγραφεί στο αποτέλεσμα αν υπάρχει ήδη άλλη κοινή γραμμή.

• Για την πράξη της τομής, η γραμμή y θα εγγραφεί στο αποτέλεσμα μόνο αν υπάρχει και άλλη κοινή γραμμή x Χ.

• Τέλος, για την πράξη της διαφοράς, αν υπάρχει γραμμή x όμοια με την y, τότε καμία δεν θα εγγραφεί στο τελικό αποτέλεσμα.

Page 66: 1 4

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

• Η ταξινόμηση χρησιμοποιείται:

– έμμεσα ως ενδιάμεσο στάδιο κατά την επεξεργασία άλλων

πράξεων, ή

– άμεσα κατόπιν εντολής του χρήστη.

• Η πιο διαδεδομένη μέθοδος είναι η ταξινόμηση με

συγχώνευση (merge-sort).

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση

Page 67: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση

• Έστω N οι γραμμές του πίνακα προς ταξινόμηση και n οι γραμμές που αποθηκεύονται στην κύρια μνήμη.

• Τα βήματα της μεθόδου είναι:– ο πίνακας χωρίζεται σε Μ=Ν/n τμήματα με το πολύ n

γραμμές το καθένα,– τα M τμήματα ταξινομούνται χωριστά, χρησιμοποιώντας

έναν αλγόριθμο ταξινόμησης κύριας μνήμης, – τα M ταξινομημένα τμήματα συγχωνεύονται ανά δύο και

παίρνουμε M/2 ταξινομημένα τμήματα με διπλάσιο αριθμό γραμμών το καθένα,

– το βήμα 3 επαναλαμβάνεται μέχρι να προκύψει μόνο ένα ταξινομημένο τμήμα με N γραμμές.

Page 68: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση

• Πρέπει να υπάρχει διαθέσιμη τουλάχιστον μία σελίδα μνήμης, η οποία χρησιμοποιείται για την αποθήκευση του αποτελέσματος.

• Μόλις η σελίδα εξόδου γεμίσει, αποθηκεύεται στο δίσκο. • Μετά το πέρας της διαδικασίας ταξινόμησης, ο ταξινο-

μημένος πίνακας είναι αποθηκευμένος στο δίσκο και μπορεί να χρησιμοποιηθεί για περαιτέρω πράξεις.

• Στη γενική περίπτωση συγχωνεύονται ταυτόχρονα m ταξινομημένα τμήματα και η μέθοδος καλείται ταξινόμηση με συγχώνευση m δρόμων.

Page 69: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση

• Παράδειγμα συγχώνευσης 2 δρόμων.

• Κάθε αρχικό τμήμα αποτελείται από 3 γραμμές πίνακα. Ο πίνακας περιέχει 12 γραμμές και ο αρχικός αριθμός των ταξινομημένων τμημάτων είναι M=12/3=4. Η ταξινόμηση πραγματοποιείται ως προς τη στήλη a.

Page 70: 1 4

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

Υλοποίηση πράξεων & Εκτίμηση κόστους – Ταξινόμηση

• Παράδειγμα συγχώνευσης 2 δρόμων.

Page 71: 1 4

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

Βελτιστοποίηση βασισμένη στο κόστος

• Η επιλογή του κατάλληλου αλγορίθμου εξαρτάται: – από τη φύση του ερωτήματος,

– από το μέγεθος των πινάκων, και

– από το μέγεθος των ενδιάμεσων αποτελεσμάτων.

• Το τελικό πλάνο εκτέλεσης παράγεται μετά τον προσδιορισμό του τελικού δένδρου έκφρασης και την αντιστοίχιση των πράξεων του δένδρου έκφρασης με αντίστοιχους αλγορίθμους επεξεργασίας.

Page 72: 1 4

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

Εξαγωγή αποτελέσματος

• Για την αποτελεσματικότερη επεξεργασία ενός ερωτη-ματος πρέπει να μελετηθεί και ο τρόπος συνδυασμού των αποτελεσμάτων των ενδιάμεσων αποτελεσμάτων.

• Δύο μέθοδοι υπάρχουν:– Επεξεργασία με προσωρινή αποθήκευση. Το συνολικό

κόστος επεξεργασίας είναι μεγαλύτερο από το άθροισμα του κόστους των επιμέρους πράξεων.

– Επεξεργασία με διοχέτευση. Αποφεύγεται η προσωρινή αποθήκευση των αποτελεσμάτων και αυξάνεται η ταχύτητα επεξεργασίας.

Page 73: 1 4

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

Εξαγωγή αποτελέσματος