17.03.2015 Views

2. Füüsiline disain

2. Füüsiline disain

2. Füüsiline disain

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TTÜ: Andmebaasi füüsiline <strong>disain</strong> (2012)<br />

© Erki Eessaar<br />

Liitindeks tuleks koostada nii, et esimeses veerus on kõige rohkem erinevaid<br />

väärtuseid ja esimest veergu kasutatakse kõige sagedamini päringutes.<br />

(Mõnikord muidugi need tingimused ei ühti). Tabelile võib vajadusel luua ka<br />

mitu liitindeksit.<br />

Tabelile võib luua mitu B-puu indeksit. Maksimaalne arv sõltub konkreetsest<br />

andmebaasisüsteemist. Soovitus on, et tabelite puhul kus on andmete<br />

muutmisi ja päringuid enam-vähem võrdselt võiks olla kuni 5 B-puu indeksit.<br />

Kui tabelite põhjal tehakse palju päringuid ja vähe muudatusi (analüüsi- ja<br />

otsustus-süsteemid), siis võiks tabelil olla kuni 12 indeksit. Kui tabelis on<br />

muudatusi rohkem kui päringuid, siis peaks indeksite arv olema väiksem<br />

kui 5.<br />

<strong>2.</strong><strong>2.</strong>3.11 B-puu indeksi täiendamine<br />

Indeks võib andmete tabelisse lisamise/muutmise käigus fragmenteeruda.<br />

B-puu indeksi fragmenteerumise tunnused on järgmised.<br />

• Indeksipuu lehtedes pole võtmeväärtused enam järjekorras.<br />

• Indeksipuu lehtede täituvus on erinev.<br />

• Indeksipuu on tasakaalust väljas – tee pikkus igast puu lehest puu-juureni<br />

ei ole ühesugune.<br />

Sellised probleemid tekivad praktikas peale seda, kui lisada/muuta vähemalt<br />

5% tabelis olevatest andmetest. Peale seda oleks aeg indeks<br />

reorganiseerida. Selleks on kaks võimalust.<br />

• Kasutada andmebaasisüsteemis ette nähtud indeksi<br />

ümber-organiseerimise lauset (erinevates andmebaasisüsteemides on<br />

need erinevad). SQL standard sellist lauset ei kirjelda. Näiteks:<br />

ALTER INDEX index REBUILD;<br />

• Kustutada indeks ja luua see uuesti. See võtab üldjuhul<br />

ümberorganiseerimisest rohkem aega.<br />

Tabelisse T suure hulga ridade lisamisel on töökiiruse huvides mõistlik<br />

kustutada kõik T-ga seotud sekundaarsed indeksid, lisada read ja seejärel<br />

luua uuesti eelnevalt kustutatud indeksid. Kokkuvõttes võtab andmete<br />

lisamine ja korrastatud indeksite saavutamine niimoodi kõige vähem aega.<br />

31

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!