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