Relaatiotietokantakyselyjen suorituskyvyn säätäminen

Monet asiakkaat kokevat suorituskykyongelmia käyttäessään tietovarastosovelluksia. Joissakin tapauksissa Oracle Analytics -palvelun luomien SQL-kyselyjen analysointi on monimutkaista. Seuraavassa on joitakin ohjeita, joiden avulla voit tutkia ja vähentää Oracle Analyticsin SQL-kyselyistä lähtöisin olevia suorituskykyongelmia.

Ohjeessa ei käsitellä verkkoon, selaimeen tai raporttien esitykseen liittyviä suorituskykyongelmia.

Oracle Analytics -kyselylokin analysointi (edellyttää lokitasoa 3)

Lisätietoja lokin sijainnista ja sisällöstä on kohdassa Kyselylokien keräys ja analysointi.

  1. Vertaa aikoja, jotka kyselyltä kuluu Oracle Analytics -palvelussa ja tietokannassa, eli vastausaikaa ja fyysisen kyselyn kestoa. Tavallisesti Oracle Analytics -palvelussa aikaa kuluu enintään muutama sekunti.
  2. Jos vastausaika on pitempi kuin muutama sekunti, etsi syy tähän analysoimalla Oracle Analytics -palvelussa suoritetut vaiheet (edellyttää lokitasoa 5).

Fyysisen SQL-kyselyn analysointi

  1. Tarkista, ovatko kaikki kyselyn sisältämät taulut tarpeellisia. Tarkista, onko mukana tauluja, jotka on liitetty mutta jotka eivät sisälly SELECT-lauseeseen ja joissa ei ole käytössä suodattimia (todellisia suodattimia, ei liitosehtoja).
  2. Selvitä luotavien fyysisten kyselyjen ja alikyselyjen määrä. Tämä tarkoittaa siis sitä, kuinka monta kertaa kysely lukee perustietotaulun. Ihanteellisessa tilanteessa kysely lukee vain yhden faktataulun ja vain kerran. Jos faktatauluja on useampia, selvitä syy siihen ja yritä poistaa niitä.
  3. Tarkista, onko kyselyssä poissuljettuja sarakkeita, muita kuin lisääviä ryhmäkoostesääntöjä (REPORT_AGGREGATE, count(distinct)...), valintavaiheita, raporttiin sisältyviä alikyselyjä, joukko-operaattoreita (UNION), loppusummia, välisummia, useita näkymiä ja niin edelleen.
  4. Tarkista, onko mukana ulkoliitoksia. Selvitä, mistä ne ovat peräisin ja voitko poistaa niitä rakennetta muuttamalla.

Suoritussuunnitelman analysointi

Jos SQL-kyselyn optimointi ei riitä, voit selvittää, johtuuko suorituskykyongelma suoritussuunnitelmasta. Pyydä tähän apua tietokannan järjestelmänvalvojalta (DBA). Tässä yhteydessä suorituskykyä voi parantaa neljällä pääasiallisella tavalla:
  1. Pienennä I/O-kutsujen määrää parantamalla tietojen käyttöpolkuja (indeksejä).
  2. Pienennä I/O-kutsujen määrää vähentämällä luettavien tietojen määrää. Voit esimerkiksi tarkistaa käytetyt suodattimet tai tietomallin rakenteen (katso seuraava osa).
  3. Lisää rinnakkaisuutta (suurien taulujen lukuun käytettyjen säikeiden määrää).
  4. Paranna I/O-kutsujen nopeutta (infrastruktuurin parannukset, muistitietokanta jne.).

Tietomallin tarkistus ja parantaminen, jolla vähennetään luettavien tietojen määrää

  1. Luo koostetauluja.
  2. Käytä fragmentointia.

    Jos käyttäjät esimerkiksi valitsevat tietoja enimmäkseen kuluvalta vuodelta, vuosineljännekseltä tai kuukaudelta, voit jakaa perustietotaulun kahdeksi tauluksi: kuluva ja arkisto. Oracle-tietokannassa voit käyttää myös osiointia.

  3. Käytä denormalisointia liitosten määrän vähentämiseen.
  4. Vähennä sarakkeiden määrää tauluja jakamalla.

    Luettavien tietojen määrään ei vaikuta pelkästään kunkin taulun rivien määrä. Taulun kokoon vaikuttaa myös sen sarakkeiden määrä ja koko. Voit esimerkiksi jakaa suuren, 500 saraketta sisältävän taulun kahteen siten, että yhdessä taulussa on 50 eniten käytettyä saraketta ja toisessa loput 450 saraketta, joita käytetään harvoin.

Oracle Analytics -palvelun suorituskykyongelmat johtuvat usein huonosta rakenteesta, jonka seurauksena SQL-kyselyistä tulee tehottomia. Rakennetta muokkaamalla voit parantaa Oracle Analytics -palvelun luomia SQL-kyselyjä. Tällä voi olla valtava vaikutus niin raporttien suorituskykyyn kuin käytettyjen tietokantaresurssien määräänkin.