HELIA 1 (15) Outi Virkki Tiedonhallinta

Samankaltaiset tiedostot
Tiedonhallintajärjestelmän rakenne ja Suorituskyky

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Luento 2: Tiedostot ja tiedon varastointi

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

SQL - STRUCTURED QUERY LANGUAGE

Tietohakemisto ja Transaktionkäsittely

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

Tietokantakurssit / TKTL

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

D B. Tietokannan hallinta kertaus

Tieto ohjelmassa ja tietokoneella

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

Tietokanta (database)

Fyysinen suunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

FYYSINEN SUUNNITTELU

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

SELECT-lauseen perusmuoto

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (12) Outi Virkki Tiedonhallinta

Näkymät ja tiedon suojaus

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

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

HELIA TIKO-05 1 ( 12) ICT03D Tieto ja tiedon varastointi Martti Laiho

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

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

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

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

FYYSINEN SUUNNITTELU

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

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

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

Kyselyn yleisrakenne:

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

3. Taulujen määrittely ja muuttaminen

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Tietokantojen suunnittelu, relaatiokantojen perusteita

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

CSE-A1200 Tietokannat

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Sisältö. 22. Taulukot. Yleistä. Yleistä

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

D B. Kyselypuut ja ekvivalenssi

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (11) Outi Virkki Tiedonhallinta

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

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

TIETOKANNAN SUUNNITTELU

Sisältö. 2. Taulukot. Yleistä. Yleistä

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANNAT JOHDANTO

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokannanhallintajärjestelmä (DBMS)

Luento 3 Tietokannan tietosisällön suunnittelu

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Relaation tyhjyyden testaaminen

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

SQL:N PERUSTEET MARKKU SUNI

Transkriptio:

HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit... 8 Tietojen tilankäyttöratkaisut... 12 Tietokantaobjektien kokomäärittely... 13 Tietokantaobjektien sijoittelu... 14 Kokeile ja testaa... 15

HELIA 2 (15) Suorituskyvyn optimointi 1. SQL-lauseiden (yleensä kyselyjen) virittäminen 2. Fyysisen tason suunnittelu / talletusratkaisut Ä Indeksit Ä Levytilan käyttö 3. Tietokannan parametrit Ä puskurit Ä Fyysisen tason ratkaisut vaikuttavat kyselyjen virittämiseen Suorituskyvyn mittareita Vasteaika (response time) Yksittäisten operaatioiden suorittamiseen kuluva aika mittausyksikkö sekunti 1. CPU 2. Levy I/O 3. Lukko-odotus Suoritusteho (troughput) Operaatioiden lukumäärä aikayksikköä kohti mittausyksikkö: tapahtumaa / sekunti Levytilan käyttö Levyjen hintojen laskun myötä ei enää kriittinen tekijä

HELIA 3 (15) Tiedonhallintajärjestelmän rakenne SQL- liittymä Sovellusohjelma SQL- komentoja SQL- käsittelijä (SQL Processor) Tapahtuman käsittelijä (Transaction Manager) Tilan käsittelijä (Storage Manager) DATA & METADATA

HELIA 4 (15) Suunnittele Ä Sovelluksen kriittinen tieto Iso tapahtumatiheys Iso volyymi = rivimäärä Iso volyymin muutos = nopea kasvu Kilpailu samasta resurssista Esim. id:n generointi Ä Transaktioiden analyysi Mitä tauluja käsitellään Mitkä kentät ovat mukana valintaehdoissa ja taulujen yhdistämisessä Mihin kenttiin haku / päivitys kohdistuu Mitä indeksejä on käytettävissä + RDBMS:n erityispiirteet

HELIA 5 (15) SQL-komentojen viritys Ä Yleensä tehokkain tapa parantaa suorituskykyä Ä Optimaalinen SQL-lauseen muoto riippuu Käytettävissä olevista indekseistä Liitoksessa mukana olevien taulujen koosta Käytettävissä olevasta keskusmuistin määrästä Hallintajärjestelmän käyttämästä optimointialgoritmista Ä Tarkkoja ohjeita kyselyjen kirjoittamiseksi vaikea antaa Mahdollista indeksien käyttö hauissa ja liitoksissa (ellei tarkoituksena ole poimia kaikki tietueita) Ä Käytä indeksoitua kenttää sellaisenaan, ei esim. laskutoimituksessa tai funktiossa Hyödynnä joukko-operaatioita (INTERSECT, UNION) Vältä alikyselyjä käytä liitoksia niiden sijasta jos mahdollista Vältä DISTINCT määrettä, vaatii usein tulosrelaation rivien järjestämistä (sort) Ä Tietokannan hallintajärjestelmäkohtaisia optimointiohjeita Esim. taulujen järjestys FROM.. JOIN -osassa

HELIA 6 (15) Tekninen ympäristö Ä Teknisten komponenttien suorituskyky määrää tietyn tiedonhallintajärjestelmäinstanssin suorituskyvyn ylärajan Talletusvälineet (levy- ja nauha-asemat) Laiteohjaimen nopeus Tiedonsiirtoväylän kapasiteetti Prosessorien nopeus ja lukumäärä Keskusmuistin määrä Käytettävissä olevan levymuistin määrä Ä Usein halvin keino parantaa suorituskykyä on hankkia lisää laitekapasiteettia...

HELIA 7 (15) Fyysisen tason ratkaisut Ä Tavoitteena on löytää loogisen tason rakenteelle riittävän tehokas fyysisen tason toteutus 1. Indeksien (hakemistojen) käyttö 2. Taulujen ja indeksien kokomääritykset 3. Taulujen, indeksien ja lokien sijoittelu 4. Sekvenssit (mm. Solidissa) 5. Denormalisointi? Ä Tietokannan suorituskykyyn vaikuttaa yleensä eniten suoritettavien levyoperaatioiden (luku, kirjoitus) määrä Ä Tiedonhaun hinta Keskusmuistista X ns Levyltä peräkkäishakuna 2 ms / sivu Levyltä poimintana 20 ms / sivu Sivukoko 2 4 KB Ä Rinnakkaisuuden hyödyntäminen + Resurssin jonotuksen välttäminen Ä Fyysisen talletusrakenteen optimointi yksittäisen tietokantaoperaation näkökulmasta saattaa olla kokonaisuuden kannalta tehoton!

HELIA 8 (15) Indeksit Saantimenetelmät 1. Peräkkäishaku 2. Indeksoitu peräkkäistiedosto 3. Hajautus Indeksityypit 1. Päähakemisto (primary index) 2. Klusteri-indeksi (clustering index) 3. Toisiohakemisto (secondary index)

HELIA 9 (15) Mitä indeksoida? 1. Pääavaimet Ä mahd. automaattinen indeksointi 2. Viiteavaimet 3. Muut kentät? Ä Valintakriteeri WHERE... Ä Liitoskriteeri JOIN ON... (tyypillisesti viiteavain) Ä Lajittelu ORDER BY... Ä Ryhmittely GROUP BY... 4. Paksut indeksit Ä Mukana kaikki transaktiossa tarvittavat tiedot! Huom! Ä Kenttien järjestys merkitsevää sarakeyhdistelmää käyttävässä indeksissä! Ä Esim. Oraclessa indeksi hyödynnettävissä sarakkeiden osoittamassa järjestyksessä Ä mahd. omat indeksit yhdistelmäindeksin yksittäisille kentille

HELIA 10 (15) Indeksin luonti CREATE [UNIQUE] INDEX index_name ON table_name (column [ASC DESC] [,...]); Tiedonhallintajärjestelmä voi luoda indeksin automaattisesti pääavaimelle Esim. CREATE INDEX i_openimi ON opettaja(sukunimi, etunimi) ; Indeksin poistaminen DROP INDEX index_name;

HELIA 11 (15) Käyttösuosituksia Keskikokoisiin ja isoihin tauluihin Pieniin (*) tauluihin indeksi vain pääavaimelle, (mikäli se tarvitaan rivin yksilöitävyyden säilyttämiseksi!) (*) koko taulu voidaan lukea yhdellä I/O-operaatiolla; < 5 fyysistä lohkoa; lohkon koko RDBMS- ja OS-kohtainen Kun usein haettavan tulosrelaation koko on pieni (< n.20%) suhteessa kyselyn pohjana olevan taulun / taulujen kokonaisrivimäärään l. poiminta tehokkaampi kuin peräkkäishaku Ei usein päivitettäviin kenttiin (?) Ä Dokumentoi! 1. nimi 2. rakenne 3. tarkoitus

HELIA 12 (15) Tietojen tilankäyttöratkaisut Objektin (taulun tai indeksin) luonnin yhteydessä DBMS varaa levyltä tilaa taulua (ja sen rivejä) varten Ä Objektin määrittelyn yhteydessä on mahdollista antaa talletukseen liittyviä parametrejä Ä Tilanvarauksen yksityiskohdat vaihtelevat eri tiedonhallintajärjestelmissä Loogiset 1. Kenttä / Attribuutti 2. Tietue / Rivi 3. Tiedosto / Taulu Fyysiset 1. Bitti 2. Tavu 3. Sana 4. Lohko / Sivu (Block / Page) Yksikkö, joka siirretään kerrallaan apumuistista keskusmuistiin (ja päinvastoin) Fyysinen tietue Koko vaihtelee käyttöjärjestelmän ja laitteistoalustan mukaan Sivuun voi mahtua 1 tai useampi tietue, joskus tietue voi olla niin suuri, että sen tallennukseen tarvitaan useampi sivu

HELIA 13 (15) Tietokantaobjektien kokomäärittely Taulun koko ~ rivien määrä * rivien pituus Rivin pituus ~ sum (kentän pituus) Kentän pituus ~ tietotyyppi * pituus (kentän tallennukseen tarvittavien tavujen määrä) Ä Taululle pyritään varaamaan niin suuri tila, että se mahtuu sinne kokonaan Pitkien sarakkeiden (tietotyyppien) tallennus Ä Sijoita sarakkeet joissa on erittäin pitkiä tietotyyppejä omiin tauluihinsa (ylinormalisoi) SQL-92: Solid: BIT, BIT VARYING LONG Ä Jotta koko tietue mahtuisi yhteen lohkoon (ns. ketjuuntumisen välttäminen)

HELIA 14 (15) Tietokantaobjektien sijoittelu Ä Taulut, indeksit ja lokitiedot eri levyille Ä levyjen rinnakkainen käyttö

HELIA 15 (15) Kokeile ja testaa Ä Tietokantatuotteissa erillisiä työkaluja suorituskyvyn selvittämiseen Solidissa EXPLAIN suoritussuunnitelma explain plan for select * from suoritus; Ä lisätietoa Solid-Server Administrator Guidessa Ä Lisäksi tilastotietoa Levytilan käytöstä (myös tietohakemistossa) Indekseistä (myös tietohakemistossa) Levy I/O:sta Transaktioista Lukituksista Lokitiedoista