Διαφορά μεταξύ B-Tree και Bitmap Διαφορά μεταξύ
B-Tree και Bitmap
Υπάρχουν δύο τύποι ευρετηρίων που χρησιμοποιούνται στην Oracle. Αυτά είναι το B-Tree και το Bitmap. Αυτοί οι δείκτες χρησιμοποιούνται για τον συντονισμό απόδοσης, ο οποίος στην πραγματικότητα κάνει αναζήτηση για αρχεία και την ανάκτηση αρκετά γρήγορα. Οι λειτουργίες ευρετηρίου δημιουργούν μια καταχώρηση για όλες τις τιμές που εμφανίζονται στις στήλες με ευρετήριο. Τα ευρετήρια B-Tree είναι ο τύπος που χρησιμοποιούνται από τα συστήματα OLTP και τα οποία υλοποιούνται κυρίως από προεπιλογή. Το bitmap, από την άλλη πλευρά, έρχεται ως μια πολύ συμπιεσμένη μορφή ευρετηρίου, η οποία στις περισσότερες περιπτώσεις χρησιμοποιείται σε αποθήκες δεδομένων.
Το bitmap μπορεί γενικά να αναφέρεται ως μέθοδος ευρετηρίασης, αν και τα οφέλη απόδοσης και η εξοικονόμηση αποθήκευσης μπορούν να αναζητηθούν. Η χρήση του, όπως προαναφέρθηκε, είναι κυρίως στο περιβάλλον αποθήκευσης δεδομένων. Ο λόγος για αυτό είναι επειδή οι ενημερώσεις των δεδομένων δεν είναι τόσο συχνές και τα ad hoc ερωτήματα είναι περισσότερο στο περιβάλλον. Κατά την εφαρμογή του Bitmap, προτιμώνται τα χαμηλά δεδομένα καρδινάλου. Το Bitmap είναι η προτιμώμενη επιλογή για στοιχεία στήλης που έχουν χαμηλές επιλογές, όπως το φύλο, το οποίο θα έχει μόνο 2 τιμές και προτιμάται. Τα στατικά δεδομένα στην αποθήκη αποτελούν επίσης ένα καλό χαρακτηριστικό των δεδομένων που θα εφαρμοστούν άριστα με τη χρήση του Bitmap. Ένα άλλο χαρακτηριστικό του Bitmap είναι ένα ρεύμα δυαδικών ψηφίων με το οποίο κάθε bit εφαρμόζεται σε μια τιμή στήλης σε μία μόνο γραμμή ενός πίνακα.
Ένα δείκτη B-δέντρου, από την άλλη πλευρά, είναι ένας δείκτης που δημιουργείται σε στήλες που περιέχουν πολύ μοναδικές τιμές. Ο δείκτης B-Tree έχει παραγγελίες που έχουν ταξινομηθεί, όπου κάθε καταχώρηση έχει μια τιμή κλειδιού αναζήτησης και έναν δείκτη που αναφέρεται σε μια δεδομένη σειρά και τιμή. Σε περίπτωση που ένας διακομιστής βρει έναν αντίστοιχο περιορισμό που σχετίζεται με την εν λόγω τιμή, ο δείκτης αναπτύσσεται για να ανακτήσει τη γραμμή.
Μία από τις διαφορές μεταξύ των δύο είναι ότι υπάρχει χαμηλή αλληλεπικάλυψη και υψηλή συνεκτικότητα στο B-Tree ενώ το αντίθετο συμβαίνει στο Bitmap. Το Bitmap έχει υψηλές εμφανίσεις διπλασιασμού και χαμηλή εγκαρδιότητα. Ο δείκτης bitmap φαίνεται να είναι πλεονεκτικός έναντι του δείκτη B-Tree, καθώς έχει πίνακες που έχουν εκατομμύρια σειρές, καθώς οι καθορισμένες στήλες έχουν χαμηλή ακρίβεια. Επομένως, τα ευρετήρια στο Bitmap προσφέρουν καλύτερη απόδοση σε αντίθεση με τους δείκτες B-Tree.
Τα B-Trees φαίνεται να είναι εξαιρετικά γρήγορα όταν συλλέγεται ένα μικρό σύνολο δεδομένων, στις περισσότερες περιπτώσεις τα δεδομένα δεν πρέπει να υπερβαίνουν το 10% του μεγέθους της βάσης δεδομένων. Αυτά τα δύο δουλεύουν μαζί όταν υπάρχουν πολλές διακριτές τιμές που είναι ευρετηριασμένες. Είναι επίσης μοναδικό στο B-Tree ότι διάφοροι δείκτες μπορούν να συγχωνευθούν για να παράγουν ένα πολύ αποτελεσματικό πρόγραμμα. Το Bitmap, από την άλλη πλευρά, τείνει να λειτουργεί καλύτερα όταν υπάρχουν χαμηλότερες τιμαριθμικές τιμές για μέγιστη απόδοση.
Τα B-δέντρα είναι ανεπαρκή όταν πρόκειται να αναζητήσουν μεγαλύτερα υποσύνολα δεδομένων που ξεπερνούν το 10% των δεδομένων των υποσυνόλων.Το Bitmap αναλαμβάνει αυτή την πρόκληση για την επίτευξη αποτελεσμάτων υψηλής ποιότητας, καθώς λειτουργεί καλύτερα όταν υπάρχουν λίγες ξεχωριστές τιμές.
Εάν υπάρχουν πολλοί δείκτες σε έναν πίνακα με πολυάσχολη χρήση του B-Tree, μπορεί να προκύψει ένα πρόβλημα ως αποτέλεσμα μικρών κυρώσεων που επιβάλλονται κατά την εισαγωγή ευρεθέντων δεδομένων ή σε περίπτωση που χρειάζεται να εισαγάγετε και να ενημερώσετε ευρετήριο δεδομένων. Αυτό δεν αποτελεί πρόβλημα με το Bitmap, καθώς είναι πολύ αποτελεσματικό στην εισαγωγή και ενημέρωση των τιμών, ανεξάρτητα από το μέγεθος που τίθεται υπό αμφισβήτηση.
Περίληψη
Το B-Tree και το Bitmap είναι δύο τύποι ευρετηρίων που χρησιμοποιούνται στο Oracle
Το Bitmap είναι μια μέθοδος ευρετηρίασης, προσφέροντας οφέλη απόδοσης και εξοικονόμηση χώρου αποθήκευσης
στήλες που περιέχουν πολύ μοναδικές τιμές
Το B-Tree λειτουργεί καλύτερα με πολλές ξεχωριστές ευρετηριασμένες τιμές
Το Bitmap λειτουργεί καλύτερα με πολλές ξεχωριστές ευρετηριασμένες τιμές