B-træ og bitmap
Der er to typer indekser, der bruges i Oracle. Disse er B-træ og bitmap. Disse indekser bruges til performance-tuning, hvilket faktisk gør det let at se efter poster og hente dem ganske hurtigt. Indeksfunktionerne opretter en post for alle værdier, der vises i de indekserede kolonner. B-træindekser er den type, der bruges af OLTP-systemer, og som hovedsageligt implementeres som standard. Bitmap, på den anden side, kommer som et stærkt komprimeret indeksformat, som i de fleste tilfælde anvendes i datalager.
Bitmap kan generelt betegnes som en metode til indeksering, selvom ydeevne fordele og opbevaring besparelser kan søges. Dens brug er som tidligere nævnt hovedsageligt i datalagermiljøet. Årsagen til dette er, fordi opdateringerne af data ikke er så hyppige, og ad hoc-forespørgsler er mere i miljøet. I implementeringen af Bitmap foretrækkes lave kardinaldata. Bitmap er det foretrukne valg for kolonneposter, der har lave indstillinger som køn, der kun har 2 værdier og foretrækkes. Statiske data på lageret er også et godt kendetegn for data, der kunne implementeres fremragende ved hjælp af Bitmap. Et andet kendetegn ved Bitmap er en strøm af bit, hvorved hver bit implementeres til en søjleværdi i en enkelt række i en tabel.
Et B-træindeks er på den anden side et indeks, der oprettes i kolonner, der indeholder meget unikke værdier. B-træ-indekset har poster, der er bestilt, hvor hver post har en søgenøglværdi og en markør, der henviser til en given række og værdi. I tilfælde af at en server finder en matchende begrænsning, der vedrører den pågældende værdi, indsættes markøren for at hente rækken.
En af forskellene mellem de to er, at der er lav duplikation og en høj samhørighed i B-Tree, mens det modsatte sker i Bitmap. Bitmap har høje duplikationsforekomster og lav hjertethed. Bitmap-indekset ses at være fordelagtigt i forhold til B-Tree-indekset, da det har tabeller, der har millioner af rækker, da de specificerede kolonner har lav kardinalitet. Indekserne i Bitmap tilbyder derfor en bedre ydelse i modsætning til B-træ-indekserne.
B-træer synes at være ekstremt hurtig, når et lille datasæt indsamles, i de fleste tilfælde bør dataene ikke overstige 10% af databasestørrelsen. Disse to fungerer sammen, når der er mange forskellige værdier, som indekseres. Det er også unikt for B-Tree, at flere indekser kan slås sammen for at producere et meget effektivt program. Bitmap har på den anden side en tendens til at fungere bedst, når der er lavere indekserede værdier for maksimal effektivitet.
B-træer er dårlige, når det kommer til at søge efter større dataundersæt, der overstiger 10% af delmængdedataene. Bitmap overtager denne udfordring til at levere resultater i høj kvalitet, da den fungerer bedre, når der er få forskellige værdier.
Hvis der er mange indekser i en optagetabel ved hjælp af B-træ, kan der opstå et problem som et resultat af små sanktioner, der pålægges ved indsættelse af indekserede data, eller i tilfælde af at du skal indsætte og opdatere indekserede data. Dette er ikke et problem med Bitmap, da det er meget effektivt til at indsætte og opdatere værdier, uanset hvilken størrelse der er tale om.
Resumé
B-Tree og Bitmap er to typer indekser, der bruges i Oracle
Bitmap er en metode til indeksering, der tilbyder ydelsesfordele og opbevaringsbesparelser
B-træindeks er et indeks, der oprettes på kolonner, der indeholder meget unikke værdier
B-Tree fungerer bedst med mange forskellige indekserede værdier
Bitmap fungerer bedst med mange forskellige indekserede værdier