7. Tietokannan toiminnan testaus ja viritys
7.1. Tietokannan suorituskykyyn vaikuttavat tekijät
Tietokannan suorituskyky on tärkeä vaatimus tuotantokäytössä oleville tietokannoille. Tietokannan suorituskykyyn vaikuttavat monet tietokannan rakenteeseen liittyvät seikat. Tällaisia seikkoja ovat tietokannan fyysinen suunnittelu, levytilan tarpeen arviointi ja tietokannan virittäminen. Jotta nämä seikat tulisivat huomioon otetuiksi, on huolellinen suunnittelu ehdottoman tärkeää.
7.1.1. Fyysinen suunnittelu
Tietokannan fyysinen suunnittelu on monilta osin tuotekohtaista, sillä jokaisessa tietokannan hallintajärjestelmässä on omat piirteensä. On kuitenkin olemassa joukko asioita, jotka soveltuvat kaikkiin hallintajärjestelmiin:
- tietokannan indeksoinnin suunnittelu; yleensä tietokannan hidas toiminta johtuu puutteellisesta tai huonosti toteutetusta indeksoinnista; indekseistä puuttuu kenttiä, indeksejä on liian vähän tai sarakkeet ovat väärässä järjestyksessä
- tietokantasivun koko; tietokantasivun koko määrää sen, kuinka suurissa palasissa tietokannan tietoja voidaan käsitellä; useimmissa relaatiotietokannoissa voidaan niin sanottu tietokantasivun koko määrittää taulu- tai indeksikohtaisesti; yleensä kannattaa määrittää sivun koko samaksi kuin käyttöjärjestelmän määräämän tietolohkon koko
- taulujen ositus; monissa tietokannoissa voidaan taulu osittaa useampaan osaan, jotka voidaan fyysisesti sijoittaa eri levyille
- kiintolevyryhmien (RAID 5) käyttö
7.1.2. Levytilatarpeen arviointi
Tietokannan vaatimaa levytilaa on mahdoton tietää tarkasti etukäteen. Jo pelkkä tyhjä tietokanta ilman ainuttakaan tietuetta vie tietyn määrän levytilaa. Levytilan tarvetta voi kuitenkin arvioida peukalosäännöllä:
Tilantarve = isoimpien taulujen nettokoko * 5
On siis varattava viisi kertaa enemmän tilaa kuin mitä varsinaiset taulutiedot vievät. Tämä johtuu muun muassa seuraavista syistä:
- indeksit vaativat tilaa
- kasvunvaraa pitää aina olla
- tiettyyn määrää tiedon toistumista pitää varautua
- SQL- käskyjen vaatima työtila
7.1.3. Tietokannan suorituskyvyn virittäminen
Tietokannan suorituskykyä voidaan parantaa monella tavalla, tässä muutama:
- indeksien suunnittelu; virittäminen kannattaa aloittaa tästä
- taulujen ja indeksien ajoittainen uudelleenjärjestely
- tietokantaa käyttävän sovelluksen logiikan selkeyttäminen
- SQL - käskyjen rakenne
- denormalisointi eli tietoinen normalisointiperiaatteen rikkominen; tästä tosin voi olla enemmän haittaa kuin hyötyä
- laiteympäristöön liittyvät tekniset ratkaisut
7.2. Tietokannan toiminnan testaus
Testaus tarkoittaa suunnitelmallista virheiden etsintää ohjelmaa suorittamalla.
Testauksen työvaiheet ovat testauksen suunnittelu, testiympäristön luonti, testin suorittaminen ja tulosten analysointi. Testauksen suunnittelussa laaditaan ensin testaussuunnitelma, joka on kirjallinen kuvaus siitä mitä ja kuinka testataan. Testaussuunnitelman lisäksi muodostetaan testitapaukset. Testaussuunnitelman ja testitapausten tulee pohjautua vaatimusmäärittelyyn.
Testiympäristön tulisi mahdollisimman hyvin vastata tietokannan aitoa toimintaympäristöä. Tämä tarkoittaa sitä, että käytettävän testiaineiston tulisi olla aitoa aineistoa ja ympäristön tulisi teknisiltä ominaisuuksiltaan olla tuotantoympäristöä vastaava.
Jos mahdollista, niin testaus kannattaa automatisoida käyttämällä testaustyökaluja. Jos testauksen suorittaa ihminen, niin testaaja ei saa olla tietokannan tekijä. Testaajalla tulee olla riittävästi tietotekniikkaosaamista. On tärkeää tehdä myös käytettävyystesti eli testata tietokannan toimintaa sen todellisilla käyttäjillä.
Testien tuloksia verrataan koko ajan määrittelydokumentteihin. On tärkeää dokumentoida myös ne toimenpiteet, joita on tehty testeissä löydettyjen virheiden korjaamiseksi.
Mitä asioita tietokannasta pitää testata:
- yksittäiset kentät: ovat niiden ominaisuudet määrittelyjen mukaiset
- taulut: noudattavatko taulut normaalimuotoja
- kyselyt: saadaanko kyselyillä oikeita tuloksia
- raportit: onko raporttien tietosisältö oikein
- käyttöliittymä: miten käyttäjä kokee käyttöliittymän, onko se suunniteltu todellista käyttöä vastaavaksi