Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς διαφέρουν οι δαπάνες των λειτουργιών I/O μεταξύ των σαρώσεων δείκτη και των σαρώσεων πίνακα


Πώς διαφέρουν οι δαπάνες των λειτουργιών I/O μεταξύ των σαρώσεων δείκτη και των σαρώσεων πίνακα


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

Οι ανιχνεύσεις ευρετηρίου περιλαμβάνουν την πρόσβαση σε δεδομένα μεταφέροντας μια δομή ευρετηρίου (συχνά ένα δέντρο B). Το κόστος εδώ περιλαμβάνει κυρίως δύο εξαρτήματα: το κόστος πρόσβασης στις σελίδες ευρετηρίου και το κόστος λήψης των αντίστοιχων σελίδων πίνακα. Οι σελίδες ευρετηρίου έχουν γενικά πρότυπα τυχαίας πρόσβασης, επειδή οι κόμβοι των φύλλων ευρετηρίου ενδέχεται να μην είναι φυσικά συνεχόμενες στο δίσκο, οδηγώντας σε τυχαίες λειτουργίες I/O. Κάθε λογικό βήμα κάτω από το δέντρο ευρετηρίου από τη ρίζα προς το φύλλο απαιτεί σελίδες ανάγνωσης και αυτό το κόστος εκτιμάται χρησιμοποιώντας την παράμετρο του τυχαίου κόστους σελίδας του συστήματος. Αφού εντοπίσει τις καταχωρήσεις ευρετηρίου για τις σχετικές σειρές, το σύστημα συγκεντρώνει τις αντίστοιχες σελίδες δεδομένων πίνακα. Ο αριθμός αυτής της σελίδας δεδομένων εξαρτάται από την εκλεκτικότητα του ερωτήματος και τη φυσική συσχέτιση μεταξύ των αποθηκευμένων δεδομένων και της σειράς ευρετηρίου (γνωστή ως συσχέτιση). Μια υψηλή συσχέτιση σημαίνει καταχωρήσεις δείκτη τοποθεσίες γραμμών που ταιριάζουν στενά με τη φυσική σειρά δεδομένων, μειώνοντας το τυχαίο I/O και καθιστώντας την πιο αποτελεσματική σάρωση του ευρετηρίου. Από την άλλη πλευρά, μια χαμηλή συσχέτιση οδηγεί σε πολλές τυχαίες ανάγκες, αυξάνοντας σημαντικά το κόστος εισόδου/εξόδου.

Το κόστος CPU σε σαρώσεις ευρετηρίου περιλαμβάνει την επεξεργασία κάθε μεμονωμένης σειράς που ανακτάται, αλλά η κύρια ανησυχία κόστους είναι I/O. Υπάρχει επίσης η πτυχή της ορατότητας: Εάν η βάση δεδομένων έχει παρακολούθηση χάρτη ορατότητας ποιες σελίδες δεδομένων είναι πλήρως ορατές σε όλες τις συναλλαγές, το σύστημα μπορεί μερικές φορές να παραλείψει εντελώς την ανάγνωση ορισμένων σελίδων κατά τη διάρκεια σαρώσεων μόνο για δείκτη, μειώνοντας δραστικά το I/O.

Αντίθετα, οι σαρώσεις πίνακα ή οι πλήρεις σαρωτές λειτουργούν με την ανάγνωση όλων των σελίδων δεδομένων διαδοχικά από τον πίνακα. Το I/O εδώ είναι ως επί το πλείστον διαδοχικό, το οποίο τείνει να είναι ταχύτερη από την τυχαία I/O σε δίσκους που περιστρέφονται ή λιγότερο τιμωρούνται σε SSD. Το κόστος μιας πλήρους σάρωσης τραπεζιού είναι σχετικά σταθερό επειδή διαβάζει ολόκληρο τον πίνακα ανεξάρτητα από τον αριθμό των σειρών που ικανοποιούν το ερώτημα. Αυτό το κόστος εξαρτάται από τον συνολικό αριθμό σελίδων στον πίνακα και όχι από τον αριθμό των επιλεγμένων σειρών. Οι πλήρεις σαρώσεις πίνακα δεν επωφελούνται από την επιλεκτικότητα. Πρέπει να διαβάζουν κάθε σελίδα, ακόμη και αν το ερώτημα φιλτράρει τις σειρές βαριά. Ωστόσο, με σύγχρονες τεχνολογίες αποθήκευσης και βελτιστοποιήσεις, όπως ανάγνωση πολλαπλών μπλοκ, παράλληλες αναγνώσεις και εκφόρτωση στρώματος αποθήκευσης, το κόστος των πλήρων σαρώσεων μπορεί να είναι ανταγωνιστική ή ακόμα μικρότερη από τις ανιχνεύσεις ευρετηρίου για ερωτήματα που ανακτώνται ένα σημαντικό τμήμα του πίνακα.

Ο βελτιστοποιητής βάσει κόστους (CBO) αποφασίζει μεταξύ της χρήσης μιας σάρωσης δείκτη και μιας πλήρους σάρωσης τραπεζιού με βάση το εκτιμώμενο κόστος. Για εξαιρετικά επιλεκτικά ερωτήματα, όπου μόνο ένα μικρό κλάσμα των σειρών πρέπει να ανακτηθούν οι σαρώσεις ευρετηρίου τείνουν να έχουν χαμηλότερο κόστος εισόδου/εξόδου, διότι έχουν ληφθεί λιγότερες σελίδες επιτραπέζιων σελίδων. Καθώς αυξάνεται το κατώφλι επιλεκτικότητας (απαιτούνται περισσότερες σειρές), το κόστος εισόδου/εξόδου των σαρώσεων ευρετηρίου αυξάνεται λόγω του μεγαλύτερου αριθμού τυχαίων μεταφορών σελίδων και των μεταφορών δείκτη, ξεπερνώντας τελικά το κόστος μιας πλήρους σάρωσης τραπεζιού. Σε αυτό το σημείο, το CBO ευνοεί μια σάρωση πίνακα επειδή το διαδοχικό κόστος εισόδου/εξόδου είναι μικρότερο από το τυχαίο βάρος εισόδου/εξόδου πολλών αναζητήσεων δείκτη.

Ένας άλλος σημαντικός παράγοντας που επηρεάζει τη διαφορά κόστους εισόδου/εξόδου είναι ο "παράγοντας ομαδοποίησης" ή η φυσική συσσώρευση σειρών που αντιστοιχούν στα πλήκτρα ευρετηρίου. Ένας χαμηλότερος συντελεστής συσσωμάτωσης (καλύτερη συσσώρευση) σημαίνει ότι οι σειρές που έχουν πρόσβαση μέσω του δείκτη βρίσκονται κοντά μεταξύ τους φυσικά, μειώνοντας την τυχαία I/O και βελτιώνοντας την αποτελεσματικότητα της σάρωσης του δείκτη. Ένας υψηλότερος παράγοντας συσσωμάτωσης οδηγεί σε πιο τυχαία I/O κατά τη διάρκεια της σάρωσης δείκτη και μειώνει το όφελος του σε σύγκριση με μια σάρωση πίνακα.

Τα σύγχρονα συστήματα βάσης δεδομένων μπορούν επίσης να εφαρμόσουν παράλληλες σαρώσεις τόσο δείκτη όσο και πλήρεις σαρώσεις, όπου οι πόροι I/O και CPU μοιράζονται μεταξύ πολλών εργαζομένων, οι οποίοι μπορούν να μειώσουν τον συνολικό χρόνο ερωτημάτων. Ωστόσο, η θεμελιώδης φύση του I/O για σαρώσεις ευρετηρίου (τυχαία πρόσβαση σελίδας) έναντι σαρώσεων πίνακα (κυρίως διαδοχικής πρόσβασης σελίδας) παραμένει βασικός διαφοροποιητής.

Για να συνοψίσουμε βασικά σημεία σχετικά με τις διαφορές κόστους I/O:

- Οι σαρώσεις ευρετηρίου εισάγουν το κόστος εισόδου/εξόδου από τις σελίδες ευρετηρίου ανάγνωσης (τυχαία πρόσβαση) συν τη λήψη αντίστοιχων σελίδων δεδομένων (ενδεχομένως τυχαία πρόσβαση). Το κόστος είναι ευαίσθητο στην επιλεκτικότητα, τη συσχέτιση και τον παράγοντα ομαδοποίησης.
- Οι πλήρεις σαρώσεις τραπέζι εκτελούν διαδοχικές I/O ανάγνωση όλων των σελίδων, με ένα σχετικά σταθερό κόστος εισόδου/εξόδου ανεξάρτητα από την εκλεκτικότητα.
- Οι ανιχνεύσεις ευρετηρίου μπορούν να ξεπεράσουν όταν τα ερωτήματα στοχεύουν μικρά υποσύνολα δεδομένων, αλλά υποφέρουν από τυχαία επιβάρυνση I/O καθώς αυξάνεται η επιλεκτικότητα.
- Οι πλήρεις σαρώσεις πίνακα μπορεί να είναι πιο αποτελεσματικές όταν ένα μεγάλο κλάσμα του πίνακα χρειάζεται πρόσβαση λόγω αποτελεσματικής διαδοχικής εισόδου/εξόδου.
- Οι χάρτες ορατότητας και οι σαρώσεις μόνο για το δείκτη μπορούν να μειώσουν το κόστος εισόδου/εξόδου σε ορισμένες περιπτώσεις σάρωσης δείκτη, αποφεύγοντας τις αναγνώσεις σελίδας δεδομένων.
- Ο παραλληλισμός μπορεί να βελτιώσει και τους δύο τύπους σάρωσης, αλλά δεν αλλάζει θεμελιώδη χαρακτηριστικά I/O.
- Ο βελτιστοποιητής ισορροπεί αυτούς τους παράγοντες κόστους για να επιλέξουν την πιο αποτελεσματική μέθοδο που βασίζεται στα χαρακτηριστικά των ερωτημάτων και των δεδομένων.

Αυτή η εξήγηση καταγράφει τις αποχρωματισμένες διαφορές κόστους στις λειτουργίες I/O μεταξύ των σαρώσεων δείκτη και των σαρώσεων πίνακα όπως κατανοείται στα σύγχρονα συστήματα σχεσιακών βάσεων δεδομένων.