perjantai 8. toukokuuta 2015

SQL Performance Explained

Markus Winand, SQL Performance Explained. English Edition. Markus Winand, 2012.

Relaatiotietokantajärjestelmiin liittyy jonkin verran teoriaa ja runsaasti käytäntöä. Relaatioalgebra tai normalisoidut kantamallit on kivoja ideaaleja, jotka toimiakseen edellyttävät kaikenlaista tunkkaamista, jotta vasteajat pysyvät kohtuullisina datamäärien kasvaessa.

Markus Winandin SQL Performance Explained (2012) käsittelee tietokannan suorituskykyä nimenomaan indeksien näkökulmasta. Indeksit ovat tietokantahakuja nopeuttavia tietorakenteita, jotka ovat tyypillisesti sivutettuja B-puita, vaikka muitakin muotoja on olemassa. Indeksointi nopeuttaa hakuja mutta hidastaa tietojen lisäystä ja kasvattaa levytilan ja muistin tarvetta.

Winand esittelee eri tietokantajärjestelmien erityispiirteitä ja työkaluja, mutta likaiset käytännön yksityiskohdat pysyvät etäällä. Niinpä hän konkretisoi indeksien hyödyt vaiheittain tehostuvien kyselysuunnitelmien kautta, mutta fyysisten laitteiden, levypuskurien, muistin, prosessorien tms. ominaisuudet eivät ole tämän kirjan ongelma.

Ammattilaiselle kirja on helppolukuinen, eikä uutta asiaa tule tavattomasti. Kirjan tarjoama näkemys taululiitoksiin (nested loop, hash join, sort merge) ja kyselysuunnitelmien aukilukeminen ovat tietysti hyödyllisiä, samoin indeksien anatomia. Kirja antaa keinot selvittää syyt hitaisiin kyselyihin ja teoriataustan ongelmien ratkaisemiseen, mutta ison datamäärän kanssa homma oikeastaan vasta alkaa tästä.

2 kommenttia:

  1. Itse työn puolesta tulee SQL:ään eksyttyä ohjelmisto-omaisuuden hallinnan näkökulmasta. Se on käytännössä lähes aina asiakkaiden sudenkuoppa lisensoinnin osalta. Tilannetta ei myöskään auta että punamonttu (MS) uusien versioiden myötä myös muuttaa SQL:n lisensointia. Viimeisimpinä muutoksina per proc > per core. 5 väärin lisensoitua pannua voi tuoda helposti kuusinumeroisen laskun asiakkaalle.

    VastaaPoista
    Vastaukset
    1. SQL eli Structured Query Language on kysely- tai ohjelmointikieli, jota useimmat relaatiotietokantajärjestelmät käyttävät tiedon hakemiseen ja organisointiin. Se on ISO-standardi, johon ei liity mitään lisenssiä.

      Puhut varmaan MS:n SQL Serveristä. Siihen, kuten muihin kaupallisiin tietokantajärjestelmiin, liittyy varmasti kaikenlaista sopimuskoukeroa, jotka muuttuvan teknologisen kehityksen myötä. :-)

      Poista