ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Σχετικά έγγραφα
Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Το εσωτερικό ενός Σ Β

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Εαρινό Εξάμηνο

Επεξεργασία Ερωτήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Επεξεργασία ερωτημάτων

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Βελτιστοποίηση επερωτημάτων

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Ο βελτιστοποιητής ερωτημάτων (query optimizer) Μετασχηματισμός εκφράσεων σχεσιακής άλγεβρας Υπολογισμός μεγεθών πράξεων σχεσιακής άλγεβρας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Υλοποίηση των Σχεσιακών Τελεστών. 6/16/2009 Μ.Χατζόπουλος 1

Βάσεις Δεδομένων 2. Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων. Ημερ: 27/5/2008 Ακ.Έτος

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 14/11/2016

PostgreSQL. Oracle. Εαρινό Εξάμηνο

Ονοματεπώνυμο: Αριθμός Μητρώου:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Θέματα Υλοποίησης Σχεσιακών ΣΔΒΔ

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εαρινό Εξάμηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων (Databases)

Βάσεις Δεδομένων ΙΙ Ενότητα 5

Ευρετήρια και Κατακερματισμός

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρα 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Κεφ.11: Ευρετήρια και Κατακερματισμός

Ευρετήρια. Ευρετήρια. Βάσεις εδοµένων :ευρετήρια 1

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Βελτιστοποίηση Ερωτημάτων Κεφ. 14

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

Certified Data Base Designer (CDBD)

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαυλος Διαφάνεια 15-1

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

Επεξεργασία Ερωτήσεων: Επανάληψη και Ασκήσεις

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

καλών σχεσιακών σχημάτων

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ (Σεπτεμβρίου)

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόμου Επεξεργασία Ερωτημάτων/Βελτιστοποίηση (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos)

Γενικά σχεσιακό μοντέλο Σχεσιακό μοντέλο -SQL Συναρτησιακές εξαρτήσεις & Κανονικοποίηση Φυσικός σχεδιασμός, Δεικτοδότηση Επεξεργασία ερωτημάτων/βελτιστοποίηση Επεξεργασία Δοσοληψιών Προχωρημένα ζητήματα Κατανεμημένες Βάσεις Δεδομένων OO- και OR-DBMSs

Επισκόπηση ενός ΣΔΒΔ Naïve user casual user DBA DML precomp. DML parser trans. mgr DDL parser buffer mgr Αρχεία Δεδομένων κατάλογος

Επισκόπηση- λεπτομερώς Κίνητρο- Γιατί βελτιστ. Ερωτήματος; Ισοδυναμία εκφράσεων Εκτίμηση κόστους Κόστος ευρετηρίων Στρατηγικές συνένωσης (join)

Γιατί βελτιστ. Ερωτήματος; SQL: ~δηλωτική Καλή Βελτ. Ερωτ. Μεγάλη διαφορά π.χ., ακολουθιακή σάρωση vs B-tree ευρετήριο, σε P=1,000 σελίδες

Βήματα Βελτ.Ερωτ. φέρτε το ερώτημα στην εσωτερική μορφή (π.χ., parse tree) στην κανονική μορφή (συντακτική Βελτ. Ερωτ.) δημιουργήστε εναλλακτικά σχέδια εκτιμήστε το κόστος, επιλέξτε το καλύτερο

Βελτ.Ερωτ. -παράδειγμα π Canonical form π select name from STUDENT, TAKES σ >< where c-id= CIS331 and STUDENT.ssn=TAKES.ssn >< σ STUDENT TAKES STUDENT TAKES

Βελτ.Ερωτ. -παράδειγμα π Hash join; merge join; nested loops; >< σ Index; seq. scan STUDENT TAKES

Επισκόπηση- λεπτομερώς Γιατί Βελτ.Ερωτ.; Ισοδυναμία εκφράσεων Εκτίμηση κόστους Κόστος ευρετηρίων Στρατηγικές συνένωσης (join)

Ισοδυναμία εκφράσεων ήσυντακτικήβελτ. Ερωτ. Εν συντομία: εφάρμοσε επιλογές και προβολές νωρίς Περισσότερες λεπτομέρειες: δείτε κανόνες μετατροπής στο βιβλίο

Ισοδυναμία εκφράσεων Ε: Πώς να αποδείξετε έναν κανόνα μετασχηματισμού; σ ( R1 > < R2) = σ ( R1) > < σ P A: Χρησιμοποιείστε το σχεσιακό λογισμό πλειάδων (TRC) για να δείξετε ότι LHS = RHS, π.χ.: σ P ( R1?? P R2) = σ P ( R1) P σ ( R2) P ( R2)

Ισοδυναμία εκφράσεων = )) ( 2) ( )) ( 1 ( ) ( 2) 1 ( ) ( 2) 1 ( 2) ( 1) ( 2) 1 (? t P R t t P R t t P R t R t t P R R t LHS t R R R R P P P σ σ σ

Ισοδυναμία εκφράσεων QED RHS t R R t R t R t t P R t t P R t R R R R P P P P P P P = 2) ( 1) ( 2)) ( ( 1)) ( ( )) ( 2) ( )) ( 1 (... 2) ( 1) ( 2) 1 (? σ σ σ σ σ σ σ

Ισοδυναμία εκφράσεων Επιλογή (selection) πραγματοποιήστε τις νωρίς σπάστε ένα πολύπλοκο κατηγόρημα και πιέστε σ p1^ p2^... pn( R) = σ p1( σ p2(... σ pn( R))...) απλοποιήστε ένα πολύπλοκο κατηγόρημα ( X=Y and Y=3 ) -> X=3 and Y=3

Ισοδυναμία εκφράσεων Προβολές (projections) πραγματοποιήστε τις νωρίς (αλλά προσεκτικά ) Μικρότερες πλειάδες Λιγότερες πλειάδες (αν εξαλείφουν οι διπλότυπες) Εξαιρέστε όλα τα γνωρίσματα εκτός από αυτά που ζητήθηκαν ή είναι απαραίτητα (π.χ., γνωρίσματα συνένωσης)

Ισοδυναμία εκφράσεων Συνενώσεις Αντιστροφή, συσχέτιση R > < S = S > < ( R > < S) >< T = R >< ( S > < T ) R Ε: n-way συνένωση Πόσες διαφορετικές ακολουθίες; Διεξοδική αρίθμηση είναι πολύ αργή

Βήματα Βελτ.Ερωτ. φέρτε τα ερωτήματα στην εσωτερική μορφή (π.χ., parse tree) στην κανονική μορφή (συντακτική Βελτ.Ερωτ.) δημιουργήστε εναλλακτικά σχέδια εκτιμήστε το κόστος; επιλέξτε το καλύτερο

Εκτίμηση κόστους Π.χ., βρείτε τo Α.Μ. των φοιτητών με βαθμό 10 στις «Βάσεις Δεδομένων» (χρησιμοποιώντας ακολουθιακή αναζήτηση) Πόσηώραθαπάρειέναερώτημα? CPU (αλλά: μικρό κόστος, μειώνεται, δύσκολο να εκτιμηθεί) Δίσκος (κυρίως, # μεταφορών blocks) Πόσες πλειάδες θα χαρακτηριστούν; (Ποια στατιστικά χρειαζόμαστε να κρατάμε;) 18

Εκτίμηση κόστους Sr Στατιστικά: για κάθε σχέση r κρατάμε nr : # πλειάδων; Sr : μέγεθος πλειάδων σε bytes #1 #2 #3 #nr

Εκτίμηση κόστους Στατιστικά: για κάθε σχέση r κρατάμε V(A,r): αριθμό διακριτών τιμών του γνωρίσματος A (πρόσφατα, και ιστογράμματα) #1 #2 #3 #nr Sr

Παράγωγα στατιστικά fr: παράγοντας ομαδοποίησης (blocking factor) = max# εγγραφών/block (=?? ) br: # blocks (=?? ) SC(A,r) = επιλεκτικότητα= avg# εγγραφών με A=δοθέν (=?? ) fr Sr #1 #2 #br

Παράγωγα στατιστικά fr: παράγοντας ομαδοποίησης = max# εγγραφών/block (= B/Sr ; B: μέγεθος block σε bytes) br: # blocks (= nr / fr )

Παράγωγα στατιστικά SC(A,r) = επιλεκτικότητα = avg# εγγραφών με A=δοθέν (= nr / V(A,r) ) (προϋποθέτει ομοιομορφία...) πχ: 30,000 φοιτητές, 10 σχολές πόσοι φοιτητές στην Πολυτεχνική Σχολή;

Επιπλέον μετρικές που χρειάζονται: Για ευρετήριο i : fi: μέσος παράγοντας διακλάδωσης (fanout degree) (~50-100) HTi: # επίπεδα του ευρετηρίου i (~2-3) ~ log(#entries)/log(fi) LBi: # μπλοκς στο επίπεδο των φύλλων HTi

Στατιστικά Που τα αποθηκεύουμε; Πόσο συχνά τα ανανεώνουμε;

Βήματα Βελτ.Ερωτ. Φέρτε το ερώτημα στην εσωτερική μορφή (π.χ., parse tree) στην κανονική μορφή (συντακτική Βελτ.Ερωτ.) δημιουργήστε εναλλακτικά πλάνα επιλογές; ταξινόμηση; προβολές συνενώσεις εκτιμήστε το κόστος, επιλέξτε το καλύτερο

Εκτίμηση κόστους & δημιουργία πλάνου Επιλογές π.χ., select * from TAKES where grade = A Πλάνα; fr Sr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου Πλάνα; Sr Σειριακή αναζήτηση Δυαδική αναζήτηση (αν είναι ταξινομημένο κατά αύξουσα σειρά) Αναζήτηση ευρετηρίου fr #1 #2 #br αν υπάρχει ένα ευρετήριο

Εκτίμηση κόστους & δημιουργία πλάνου Sr Διαδοχ. Αναζ. κόστος; br (χειρότερη περιπτωση) br/2 (μέση περίπτωση, αν αναζητάμε με βάση το πρωτεύων κλειδί) fr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου Sr δυαδική αναζ. κόστος; αν είναι ταξινομημένο κατά αύξουσα σειρά: ~log(br) + SC(A,r)/fr (=#μπλοκς καταλυμένων από αρμόδιες πλειάδες) -1 fr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου Sr εκτίμηση της επιλογής πρωτευόντων SC(A,r): μη τετριμμένη fr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου μέθοδος#3: ευρετήριο κόστος? επίπεδα ευρετηρίου + μπλοκς με αρμόδιες πλειάδες περίπτωση#1: πρωτεύων κλειδί περίπτωση#2: δευτ. κλειδί συσταδοποιημένο ευρετήριο περίπτωση#3: δευτ. κλειδί μη συσταδοποιημένο ευρετήριο fr... Sr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου μέθοδος#3: ευρετήριο κόστος? επίπεδα ευρετηρίου + μπλοκς με αρμόδιες πλειάδες fr.. Sr #1 #2 περίπτωση#1: πρωτεύων κλειδί κόστος: HTi + 1 HTi #br

Εκτίμηση κόστους & δημιουργία πλάνου μέθοδος#3: ευρετήριο κόστος? επίπεδα ευρετηρίου + μπλοκς με αρμόδιες πλειάδες περίπτωση#2: δευτ. κλειδί συσταδοποιημένο ευρετήριο Ήπρωτ. ευρετ.σε μη-κλειδί ανάκληση πολλαπλών εγγραφών HTi + SC(A,r)/fr HTi fr Sr #1 #2 #br

Εκτίμηση κόστους & δημιουργία πλάνου μέθοδος#3: ευρετήριο κόστος? επίπεδα ευρετηρίου + μπλοκς με αρμόδιες πλειάδες περίπτωση#3: δευτ. κλειδί μη συσταδοποιημένο ευρετήριο HTi + SC(A,r) (actually, pessimistic...) fr... Sr #1 #2 #br

Εκτίμηση κόστους αριθμητικό παράδειγμα βρείτε τους λογαριασμούς με όνομαυποκαταστήματος = Πάτρα Λογαριασμός (όνομα-υποκαταστήματος, υπόλοιπο,...)

Αριθμητικό παράδειγμα (συνεχ.) n-account = 10,000 πλειάδες f-account = 20 πλειάδες/μπλοκ V(υπόλοιπο, λογαριασμός) = 500 διακριτές τιμές V(όνομα-υποκαταστήματος, λογαριασμός) = 50 διακριτές τιμές για branch-index: παράγοντας διακλάδωσης (fanout) fi = 20

Αριθμητικό παράδειγμα Ε1: κόστος σειριακής αναζήτησης; A1: 500 προσπελάσεις δίσκου Ε2: υποθέστε ένα ευρετήριο συστάδων στο όνομα-υποκαταστήματος κόστος;

Εκτίμηση κόστους & δημιουργία πλάνου μέθοδος#3: ευρετήριο κόστος; Επίπεδα ευρετηρίου + μπλοκς με αρμόδιες πλειάδες fr Sr #1 #2 περίπτωση#2: δευτ. κλειδί συσταδοποιημένο ευρετήριο HTi #br HTi + SC(A,r)/fr

Αριθμητικά παραδείγματα A2: HTi + SC(όνομα-υποκαταστήματος, λογαριασμός)/f-account HTi: 50 τιμές, με παράγοντας διακλάδωσης 20 -> HT=2 επίπεδα (log(50)/log(20) = 1+) SC(..)= # αρμόδιες εγγραφές = nr/v(a,r) = 10,000/50 = 200 πλειάδες SC/f: έκταση 200/20 μπλοκς= 10 μπλοκς

Αριθμητικά παραδείγματα A2 τελική απάντηση: 2+10= 12 προσπελάσεις μπλοκς (αντί 500 προσπελάσεις μπλοκς σειριακής αναζήτησης) σημείωση: in all fairness σειριακές αναζητήσεις δίσκου: ~2msec (ή και λιγότερο) Τυχαίες προσπελάσεις μπλοκς: ~10msec

Επισκόπηση- λεπτομερώς Κίνητρο- Γιατί βελτιστ. Ερωτήματος; Ισοδυναμία εκφράσεων Εκτίμηση κόστους Κόστος ευρετηρίων Στρατηγικές συνένωσης (join)

2-way joins αλγόριθμος(-οι) για r JOIN s? nr, ns πλειάδες κάθε σχεση r(a,...) nr s(a,...) ns

2-way joins Αλγόριθμος #0: (αφελής) εμφωλευμένες επαναλήψεις (ΑΡΓΟ!) for each tuple tr of r r(a,...) for each tuple ts of s print, if they match nr s(a,...) ns

2-way joins Αλγόριθμος #0: γιατί είναι κακή? πόσες προσπελάσεις δίσκου ( br και bs είναι ο αριθμός των μπλοκς για r και s )? r(a,...) κόστος: nr*bs + br nr s(a,...) ns

2-way joins nr, br Αλγόριθμος #1: Blocked εμφωλευμένων επαναλήψεων συνένωση read in a block of r read in a block of s r(a,...) print matching tuples s(a,...) κόστος: br + br * bs ns εγγραφές, bs μπλοκς

2-way joins Αριθμητικό παράδειγμα: nr = 10,000 πλειάδες, br = 1,000 μπλοκς ns = 1,000 πλειάδες, bs = 200 μπλοκς αλγ#0: 2,001,000 π.δ. 10,000 r(a,...) s(a,...) αλγ#1: 201,000 π.δ. 1,000 1,000 εγγραφές, 200 μπλοκς

2-way joins nr, br Παρατήρηση 1: Αλγ#1: ασύμετρος: κόστος: br + br * bs ανάστροφοι ρόλοι: κόστος= bs + bs*br Καλύτερη επιλογή? r(a,...) Μικρότερη σχέση στη εξωτερική επανάληψη s(a,...) ns εγγραφές, bs μπλοκς

2-way joins Άλλοι αλγόριθμοι για r JOIN s; nr, ns πλειάδες το καθένα r(a,...) nr s(a,...) ns

2-way joins - other algo s sort-merge Ταξινόμησε r ; Ταξινόμησε s ; Merge ταξινομημένες εκδόσεις των r και s. Kαλό, αν η μια ή και οι δύο σχέσεις είναι ηδη ταξινομημένες r(a,...) nr s(a,...) ns

2-way joins - other algo s hash join: hash r into (0, 1,..., max ) buckets hash s into buckets (same hash function) join each pair of matching buckets r(a,...) 0 1 s(a,...) max

Δομή των βελτιστοποιητών επερωτήσεων: Περισσότερα heuristics από Oracle, Sybase and Starburst (-> DB2) : στο βιβλίο Γενικά: Βελτιστοποίηση Επερωτήσεων: Είναι πολύ σημαντική για μεγάλες βάσεις δεδομένων ( explain select <sql-statement> δείχνει το πλάνο)

Συμπεράσματα βήματα βελτ.επερ. φέρτε το ερώτημα στην εσωτερική μορφή (πχ., parse tree) στην κανονική μορφή (συντακτική Βελτ.Ερωτ.) δημιουργήστε εναλλακτικά σχέδια επιλογές (απλές; σύνθετα κατηγορήματα) ταξινόμηση; προβολές συνενώσεις εκτιμήστε το κόστος, επιλέξτε το καλύτερο