17.03.2015 Views

2. Füüsiline disain

2. Füüsiline disain

2. Füüsiline disain

SHOW MORE
SHOW LESS

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 />

omanik Volvo Mercedes Scania Saab<br />

omamise rida 1 1 0 0 0<br />

omamise rida 2 0 1 0 0<br />

omamise rida 3 1 0 0 0<br />

omamise rida 4 1 0 0 0<br />

omamise rida 5 0 0 0 1<br />

Selline indeks aitab näiteks kiirendada päringut:<br />

SELECT A.tootja, O.algus, O.lopp<br />

FROM Auto A, Omamine O<br />

WHERE A.auto_nr=O.auto AND A.tootja='Volvo';<br />

<strong>2.</strong><strong>2.</strong>3.18 Tabeli läbiskaneerimine vs. indeksi kasutamine<br />

Andmete otsimiseks võib andmebaasisüsteem kasutada järgnevaid<br />

meetodeid (ingl. k. access method).<br />

• Tabeli läbiskaneerimine (tabeli plokkide lugemine ilma indeksit<br />

kasutamata). Andmebaasisüsteem peab igast loetud plokist otsima<br />

tingimustele vastavaid ridu. Mida suurem on tabel, seda rohkem kulub<br />

tabeli läbiskaneerimiseks aega. Võimalikud strateegiad:<br />

1. Vaadatakse läbi kõik plokid (ingl. k. full table scan)<br />

<strong>2.</strong> Vaadatakse läbi osa plokke – võimalik nt. Siis, kui tabeli andmed on<br />

plokkides sorteeritud ja otsing toimub veeru järgi, mille alusel<br />

sorteerimine on toimunud.<br />

• Indeksi kasutamine. Indeksi kasutamisel on võimalikud variandid.<br />

1. Andmebaasisüsteem loeb indeksit. Indeksist leitud ridade füüsiliste<br />

aadresside alusel loeb andmebaasisüsteem tabelite plokke.<br />

<strong>2.</strong> Andmebaasisüsteemil piisab vajalike andmete leidmiseks<br />

(päringule vastuse saamiseks) ainult indeksi lugemisest.<br />

SELECT *<br />

FROM Aine<br />

WHERE aine_kood>'IDU3381';<br />

Andros (2002 lk. 39) märgib, et tavaliselt arvatakse nagu oleks tabeli<br />

läbiskaneerimine aeglane ja ebaefektiivne võrreldes indeksi kasutamisega.<br />

Indeksi kasutamine ei ole alati kasulik. Andmebaasisüsteem peab<br />

oskama valida, millal indeksit kasutada ja millal mitte.<br />

Andmebaasisüsteemil oleks indeksi lugemise asemel mõistlik kasutada<br />

tabeli läbiskaneerimist kui küsitakse andmeid ka sellistest veergudest,<br />

mis indeksisse ei kuulu ja on täidetud üks järgmistest tingimustest.<br />

• Tabel on suur. Päring leiab suure hulga tabelis olevaid ridu<br />

(erinevatel andmetel vähemalt 35% või vähemalt 50% ridadest).<br />

• Tabel on suhteliselt väike (nt. 100 rida või vähem, ja mõned<br />

veerud).<br />

40

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

Saved successfully!

Ooh no, something went wrong!