2. Füüsiline disain
2. Füüsiline disain
2. Füüsiline disain
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
TTÜ: Andmebaasi füüsiline <strong>disain</strong> (2012)<br />
© Erki Eessaar<br />
• B-puu indeksi andmemaht võib kujuneda suuremaks kui indekseeritava<br />
tabeli andmemaht. Samas on bitmap indeksi andmemaht väga palju<br />
väiksem indekseeritava tabeli andmemahust.<br />
• Vähemalt Oracle andmebaasisüsteemis on bitmap indeksit ebasobiv<br />
kasutada andmebaasides, kus toimuvad sagedased ja paralleelsed<br />
andmete muutmise transaktsioonid. Seda põhjusel, et bitmap indeksi<br />
täiendamine rea muutmise järel põhjustab suure hulga tabeli ridade<br />
lukustumise.<br />
• Eelnevast punktist tulenevalt kasutataks bitmap indekseid andmeaitades<br />
(ingl. k. data warehouse).<br />
• Bitmap indeksid on kõige efektiivsemad päringute puhul, mis sisaldavad<br />
mitmeid tingimusi WHERE klauslis. Read, mis vastavad mõnele, kuid mitte<br />
kõigile tingimustele filtreeritakse välja juba enne tabeli poole pöördumist.<br />
SELECT *<br />
FROM Arve<br />
WHERE (tasumise_viis='sularahas' OR tasumise_viis='ülekandega') AND<br />
(ostja_tüüp='eraisik');<br />
(tasumise_viis='sularahas' ) OR (tasumise_viis= 'ülekandega' AND<br />
ostja_tüüp='eraisik')<br />
tasumise_viis=<br />
'sularahas'<br />
tasumise_viis=<br />
'ülekandega'<br />
ostja_tüüp=<br />
'eraisik'<br />
1 0 1<br />
0 1 0<br />
0 1 0<br />
0 0 1<br />
0 1 1<br />
0 0 0<br />
AND ja OR operatsioonide läbiviimine toimub biti kaupa. Tulemuseks on<br />
bitivektor, mida saab kasutada järgmistes AND või OR operatsioonides.<br />
tasumise_viis= tasumise_viis= 'ülekandega'<br />
'sularahas' AND ostja_tüüp='eraisik'<br />
1 0<br />
0 0<br />
0 0<br />
0 0<br />
0 1<br />
0 0<br />
Kollasega on tähistatud päringu tulemuseks olevaid ridu tähistavad bitid.<br />
tasumise_viis='sularahas' OR (tasumise_viis= 'ülekandega' AND<br />
ostja_tüüp='eraisik')<br />
1<br />
0<br />
0<br />
0<br />
1<br />
0<br />
38