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

See tähendab, et füüsiliselt on tabelisse kuuluvad andmed klastri võtme järgi<br />

sorteeritud.<br />

Oracles nimetatakse sellise idee järgi loodud tabelit index-organized table.<br />

Oracles saab klastri võtmeks olla vaid primaarvõti Microsoft SQL Serveris<br />

kasutab analoogilist ideed klasterdatud indeks.<br />

(vt. http://www.sql-server-performance.com/clustered_indexes.asp ). Microsoft<br />

SQL Serveris võib, kuid ei pruugi, olla klastri võtmeks primaarvõti.<br />

Puu lehtedeks on tegelikud tabeliplokid. Sellest tulenevalt:<br />

1. Andmete puustruktuurist otsimisele järgnev andmete lugemine ei põhjusta<br />

uute plokkide lugemist, sest B-puu lehed ongi tegelikud tabeliplokid.<br />

<strong>2.</strong> Kuna puu lehtedeks on tegelikud tabeliplokid, on tabeli read kettal<br />

füüsiliselt järjestatud võtme väärtuste järjekorras. See suurendab I/O<br />

(sisend/väljund) operatsioonide kiirust kui võtmevälja põhjal otsitakse ja<br />

loetakse tabelist suur hulk füüsiliselt üksteisele järgnevaid ridu.<br />

Loomulikult saab iga tabeli kohta olla ainult üks taoline B-puu struktuur.<br />

MS SQL Serveris soovitatakse klastri võti valida järgmiste kandidaatide seast.<br />

• Välisvõtme veerud. Sellest on kasu tabelite ühendamisel, sest sama<br />

välisvõtme väärtusega read on füüsiliselt kõrvuti ning ühendamise<br />

operatsiooni läbiviimine läheb seetõttu kiiremini.<br />

• Veerud, mille põhjal tehakse sageli otsing, mis hõlmab väärtuste vahemiku<br />

otsimist. Näide:<br />

SELECT *<br />

FROM Isik<br />

WHERE perenimi BETWEEN 'Aas' AND 'Berendson';<br />

Kui perenime järgi tehtavad päringud on olulised, neid tehakse sageli ja nad<br />

toovad välja suure hulga ridu, tuleks kaaluda tabeli organiseerimist B-puu<br />

struktuuri perenimede järgi.<br />

• Veergudele, mida kasutatakse sageli ORDER BY või GROUP BY klauslis.<br />

Andmete lisamine või klastri võtme veergudes andmete muutmine on<br />

aeglane, sest rida tuleb paigutada failis järjekorras õigesse kohta. Kui klastri<br />

võtmel on monotoonselt (n, n+1, n+2 jne) kasvav väärtus, siis satuvad<br />

korraga lisatavad read andmefailis ühte plokki ja see tekitab kuuma punkti<br />

(ingl. k. hot-spots), kus lisamise koormus on suurem kui mujal.<br />

34

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

Saved successfully!

Ooh no, something went wrong!