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

CREATE INDEX pn_ind ON hinded (pnimi);<br />

SELECT * FROM hinded ORDER BY pnimi;<br />

Vaate põhjal päringut tehes konstrueerib päringu täitmise programm vaate ja<br />

päringu põhjal uue SQL lause, mis täidetakse vaate aluseks olevatel tabelitel<br />

ja selle täitmiseks võidakse kasutada indekseid.<br />

<strong>2.</strong><strong>2.</strong>3.2 Indeksi kustutamine<br />

DROP INDEX index;<br />

<strong>2.</strong><strong>2.</strong>3.3 Automaatne indeksi loomine<br />

Andmebaasisüsteem võib kasutada indekseid, et kiirendada kitsenduste<br />

täidetuse kontrolli.<br />

Kui tabeli loomisel või muutmisel defineerida tabelile primaarvõti (PRIMARY<br />

KEY kitsendus) või lisada mõnele veerule lihtsalt unikaalsuse nõue (UNIQUE<br />

kitsendus), siis peaaegu kõik andmebaasisüsteemid loovad nendele<br />

veergudele automaatselt indeksi.<br />

Tänu indeksi olemasolule saab andmebaasisüsteem indekseeritud veergu<br />

väärtuse lisamisel või väärtuse muutmisel kiiresti kontrollida, kas unikaalsuse<br />

nõue on peale seda täidetud.<br />

NB! Unikaalsuse kitsendus != Indeks<br />

Unikaalsuse kitsenduse loomine ei pea tingimata tähendama indeksi loomist<br />

(st. indeksi loomine võib olla otstarbekas, aga andmebaasisüsteem ei pea<br />

seda looma, kui see kasutab mingit efektiivsemat meetodit unikaalsuse<br />

kitsenduse täidetuse kontrolliks).<br />

Mõned andmebaasisüsteemid (aga mitte enamik) nagu Informix, Ingres ja<br />

InterBase loovad automaatselt indeksid ka välisvõtmetele.<br />

Enamik andmebaasisüsteeme ei kontrolli indeksi loomisel, kas indekseeritava<br />

veeru põhjal pole juba indeksit loodud. Niimoodi võivad tekkida kattuvad ja<br />

seega liigsed indeksid. See on halb sest sellised indeksid:<br />

- raiskavad salvestusruumi;<br />

- aeglustavad andmete muutmiseks mõeldud lausete täitmist;<br />

- ajavad päringu optimeerimise programmi segadusse, kuna sellel<br />

on valida mitme samaväärse indeksit kasutava täitmisplaani<br />

vahel.<br />

<strong>2.</strong><strong>2.</strong>3.4 Indeksi kasutamine<br />

Andmebaasisüsteeme otsustab ise, millal kasutada andmete otsimiseks<br />

indeksit ja millal mitte. Selleks peavad andmebaasisüsteemile teada olema<br />

20

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

Saved successfully!

Ooh no, something went wrong!