Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Samankaltaiset tiedostot
D B. Kyselypuut ja ekvivalenssi

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

D B. Tietokannan hallinta kertaus

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

Kyselyiden käsittely. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Kyselyiden optimointi

Helsingin yliopisto/tktl Tietokannan hallinta, s Harri Laine 1 D B. Kyselyjen käsittely ja optimointi

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

SQL-KYSELYJEN OPTIMOINNISTA. Niko Jalkanen Joensuun yliopisto Tietojenkäsittelytiede Pro gradu tutkielma

Kyselypuut ja ekvivalenssi. Kyselyiden optimointi. Kyselypuut ja ekvivalenssi. Kyselypuut ja ekvivalenssi. R & G Chapter 12-15

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Kyselyjen käsittely

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

HELIA 1 (15) Outi Virkki Tiedonhallinta

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

D B. Kyselyjen käsittely ja optimointi. Kyselyjen käsittely ja optimointi

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Relaatioalgebra. Kyselyt:

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Paikkatiedon käsittely 6. Kyselyn käsittely

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

4. Kyselyjen käsittely ja optimointi

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

811120P Diskreetit rakenteet

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Tietokanta (database)

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

Tietorakenteet ja algoritmit - syksy

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (14) Outi Virkki Tiedonhallinta

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Luku 8. Aluekyselyt. 8.1 Summataulukko

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Algoritmit 1. Luento 5 Ti Timo Männikkö

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Action Request System

HELIA 1 (11) Outi Virkki Tiedonhallinta

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Liitokset - haut useaan tauluun

TIETOKANNAT JOHDANTO

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

811120P Diskreetit rakenteet

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Algoritmit 1. Luento 10 Ke Timo Männikkö

12. Javan toistorakenteet 12.1

Algoritmi on periaatteellisella tasolla seuraava:

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

811312A Tietorakenteet ja algoritmit I Johdanto

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Algoritmit 2. Luento 4 Ke Timo Männikkö

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Datatähti 2019 loppu

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Tiedostorakenteet.

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

HELIA 1 (12) Outi Virkki Tiedonhallinta

Tietokantojen suunnittelu, relaatiokantojen perusteita

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Esimerkkejä vaativuusluokista

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Algoritmit 2. Luento 4 To Timo Männikkö

12. Javan toistorakenteet 12.1

Korkealujuusteräkset putkiristikoissa

Muita rekisteriallokaatiomenetelmiä

SQL-kielen perusteet. Tietokantojen perusteet

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Relaatiomalli ja -tietokanta

(5) Tentin maksimipistemaara on 40 pistetta. Kaikki vastaukset naihin tehtavapapereihin.

ohjelman arkkitehtuurista.

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 7 Pasi Ranne

Transkriptio:

Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot vastaavat relaatioalgebran operaatioita, tarvitaan muunnos määritelmällisestä muodosta proseduraaliseen. Tarjolla on useita vaihtoehtoja sekä operaatioiden että niiden järjestyksen suhteen Valitut tiedostorakenteet vaikuttavat siihen, miten tietokantaoperaatio kannattaa suorittaa Taulujen koko ja arvojen jakautumat muuttuvat jatkuvasti, tämä saattaa vaikuttaa siihen, miten kysely kannattaa toteuttaa Löydettävä tehokas tapa. ei ole todellista matemaattista optimointia tarkoitus ei ole löytää parasta vaan riittävän hyvä parhaan etsiminen on laskennallisesti raskasta taustatietoja ei yleensä ole riittävästi parhaan valintaan 1 2 Kyselyjen käsittely ja optimointi Kyselyn optimoinnin periaatteet Heuristinen optimointi (sääntöpohjainen optimointi) käytössä on joukko sääntöjä, joiden mukaisesti operaatiot järjestetään tai suoritustavat valitaan valinnat ennen liitoksia käytä indeksiä aina kun mahdollista jne. säännöt ovat yleiskäyttöisiä suoritustapa ei välttämättä ole optimaalinen Kyselyjen optimointi Kyselyn optimoinnin periaatteet Kustannuslaskentaoptimointi (tilastollinen optimointi) laaditaan vaihtoehtoisia suunnitelmia, esim. sääntöpohjalta lasketaan vaihtoehdoille kustannukset valitaan edullisin edellyttää tilastoaineistoa ja sen uudistamista ajoittain 3 4 Kyselyjen optimointi Kyselyn kääntäminen tuottaa tuloksenaan kyselypuun (käsiteltiin aiemmin) Kyselypuuta muokataan tehokkaammaksi ekvivalentiksi puuksi käyttäen ekvivalenssisääntöjä ja heuristisia optimointisääntöjä Heuristisia optimointisääntöjä: Konjunktiiviset valintayhdistelmät puretaan alkeisvalinnoiksi Valinnat painetaan mahdollisimman alas puussa Valinta ja ristitulo korvataan liitoksella Samalla algoritmilla suoritettavat operaatiot (esim. kaksi valintaa samaan tauluun) yhdistetään uun lehdet järjestetään siten, että rajaavimmat operaatiot (pienin tulosjoukko) suoritetaan ensin (puuta käydään läpi vasemmalta alhaalta alkaen) Operaatiot järjestetään siten, että vältetään välitulosten kirjoitus 5 6 Harri Laine 1

-käännös Tarkastellaan tietokantaa Teos(tnro,nimi, ) 30000 riviä Kurssi(nro,kurssinimi, ) 200 riviä Materiaali(kurssi->Kurssi,kirja->Teos, tyyppi, ) 1000 riviä Halutaan saada selville, mitkä teokset on määritelty kurssin Kyselykielet oheismateriaaliksi 7 8 -käännös -käännös 9 10 -käännös -käännös 11 12 Harri Laine 2

-käännös -käännös S() 13 14 -käännös heuristiset säännöt S() Liitos=ristitulo+valinta S() 15 16 heuristiset säännöt Valinnat alas S() 17 Ilman tilastotietoja on vaikea päästä pidemmälle. Rajaavuutta voi arvioida oikeastaan vain, jos valinta perustuu taulun avaimeen. Koska yleisesti ei kannata määritellä indeksiä, jos arvojoukko on pieni, voi tähän perustuen olettaa indeksiperustana käytettyihin sarakkeisiin liittyvien yhtäsuuruusvalintojen olevan kohtuullisen rajaavia Kustannuslaskentaoptimoinnissa käytetään hyväksi tilastotietoa: Taulun koko Tietueen koko Tietueiden lukumäärä sivulla Erilaisten arvojen lukumäärä sarakkeessa Arvojen jakautuminen sarakkeessa (ns. histogrammit) Sivujen täyttösuhteet, 18 Harri Laine 3

- kustannuslaskenta - kustannuslaskenta Tilastotiedot antavat mahdollisuuden arvioida rajaavuutta ja tuloksen kokoa ja myös operaation kustannuksia. Kustannuslaskentaoptimoinnissa lasketaan kustannukset joukolle vaihtoehtoja ja valitaan näistä edullisin. Kustannus voidaan laskea joko sivuhakujen määränä tai jollain kustannusfunktiolla joka yrittää ottaa huomioon myös sivuhakujen luonteen peräkkäis-/satunnaishakuja 19 Kurssinimiä n.200, lähes yhtä paljon kuin kursseja, tyyppejä 5, akautuneet tasaisesti. Tulos: ~1 Raj:1/200 Tulos: ~ 200 S() Raj:1/200 Raj:1/5 20 - kustannuslaskenta = indeksihaku = indeksiliitos = selaus siss=sisäkkäiset silmukat jarj= järjestäminen =putki siss Tulos: ~ 200 S() jarj kurssinimi kurssi tnro 21 Olkoon yllä olevat indeksit - kustannuslaskenta Kurssi: 5/sivu Materiaali: 10/sivu Teos 5/sivu Ei mitään putken takia YHT: 2+100+3=105 sivuhakua 1000/10=100 (data) 1(ind)+1(data) siss Tulos: ~ 200 S() jarj 2 (ind)+1 (data) 22 - kustannuslaskenta Yht:2+7+3=12, parempi jarj 2 (ind)+1 (data) Ei mitään 2(ind)+5(data) 1(ind)+1(data) S() kurssinimi kurssi 23 - kustannuslaskenta Optimoijat eivät välttämättä tutki kaikkia vaihtoehtoja Esimerkiksi useiden liitosten järjestyksen määräämiseksi käytetään yleisesti ns. vasensyvää puuta (left deep tree). Tässä liitosrakenne on muotoa ((A join B) join C) join D... eli valmiiseen tulokseen liitetään taulu kerrallaan lokaalia optimointia: mikä liitos kannattaa tehdä ensin, mikä kannattaa liittää sitten tämän tulokseen, jne muotoa (A join B) join (C join D) olevia liitosrakenteita ei edes arvioida 24 Harri Laine 4

- kustannuslaskenta Kustannuslaskennan pohjana oleva tilastojen keräys voi tapahtua automaattisesti tai erikseen pyydettäessä. Järjestelmät tarjoavat usein myös mahdollisuuden kysyä, millaiseen suoritussuunnitelmaan optimoija on päätynyt. Oraclessa eplain plan kirjaa suunnitelman tietokantatauluun 25 Harri Laine 5