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

Samankaltaiset tiedostot
HELIA 1 (15) Outi Virkki Tiedonhallinta

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Luento 2: Tiedostot ja tiedon varastointi

Tieto ohjelmassa ja tietokoneella

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 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

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

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

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

SQL - STRUCTURED QUERY LANGUAGE

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

D B. Tietokannan hallinta kertaus

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokanta (database)

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

FYYSINEN SUUNNITTELU

3. Taulujen määrittely ja muuttaminen

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

SELECT-lauseen perusmuoto

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

FYYSINEN SUUNNITTELU

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

Fyysinen suunnittelu

Tietokantakurssit / TKTL

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokannat II -kurssin harjoitustyö

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Lohdutus - tietokantadokumentti

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Tietohakemisto ja Transaktionkäsittely

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Näkymät ja tiedon suojaus

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

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

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

Tietokannanhallintajärjestelmä (DBMS)

D B. Kyselypuut ja ekvivalenssi

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

HELIA 1 (1) Outi Virkki Tiedonhallinta :43

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

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

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

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

SOLIDPDM 6 Plus uudet ominaisuudet osa 2

HELIA 1 (14) Outi Virkki Tiedonhallinta

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

TIETOKANNAN SUUNNITTELU

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

D B. Harvat hakemistot. Harvat hakemistot

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

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Kyselyn yleisrakenne:

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

Tietokannat PERUSMATERIAALI Microsoft Access 2007 Kieliversio: suomi Materiaaliversio 1.0 päivitetty

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

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

IIO10200 Tietokantaohjelmointi (4 op)

Liitokset - haut useaan tauluun

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

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

D B. Tiedostojen käsittely

Relaatiomalli ja -tietokanta

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

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

RADAR - RANDOM DATA GENERATOR

Transkriptio:

HAAGA-HELIA Heti-09 1 (17) Suorituskyky Suorituskyky... 2 Suorituskyvyn mittareita... 2 Tekninen ympäristö... 3 Suorituskyvyn optimointi... 4 Optimoinnin kohteet... 5 Fyysisen tason ratkaisut... 6 Indeksointi... 7 Saantimenetelmät ja Tiedosto-organisaatio... 7 Peräkkäistiedosto... 8 Indeksoitu peräkkäistiedosto... 8 Indeksityypit... 10 Päähakemisto... 10 Toisiohakemisto... 11 Mitä indeksoida?... 12 SQL-komentojen viritys... 15 Sekvenssit... 16 Suoritussuunnitelma... 17

HAAGA-HELIA Heti-09 2 (17) Suorituskyky Tärkeintä tietokannan käytössä on, että tieto on luotettavaa Toiseksi tärkeintä on tietokannan suorituskyky Suorituskyvyn mittareita Vasteaika (response time) Yksittäisten operaatioiden suorittamiseen kuluva aika, mittayksikkö sekunti 1. CPU 2. Levy I/O 3. Lukko-odotus Nykyteknologian aikana kohtuullisena vastausaikana pidetään noin 1-2 sekuntia. Suoritusteho (troughput) Operaatioiden lukumäärä aikayksikköä kohti mittausyksikkö: tapahtumaa / sekunti

HAAGA-HELIA Heti-09 3 (17) Tekninen ympäristö Teknisten komponenttien suorituskyky määrää tietyn tietokannanhallintajärjestelmäinstanssin suorituskyvyn ylärajan Talletusvälineet (levy-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...

HAAGA-HELIA Heti-09 4 (17) Suorituskyvyn optimointi Lähtokohtana sovelluksen käyttötavat ja tietomäärät Sovelluksen keskeinen / kriittinen tieto Iso tapahtumatiheys Iso volyymi = rivimäärä Iso volyymin muutos = nopea kasvu Kilpailu samasta resurssista Esim. id:n generointi: (select max(id) + 1) Transaktioiden analyysi Mitä tauluja käsitellään Mitkä sarakkeet ovat mukana valintaehdoissa ja taulujen liitoksissa Mihin sarakkeisiin haku / päivitys kohdistuu Mitä indeksejä on käytettävissä + RDBMS:n mahd. erityispiirteet

HAAGA-HELIA Heti-09 5 (17) Optimoinnin kohteet 1. Fyysisen tason suunnittelu / ratkaisut Indeksit Sekvenssit Levytilan käyttö 2. SQL-lauseiden (yleensä kyselyjen) virittäminen 3. Tietokannan parametrit Puskurialueen koko Sivun koko Fyysisen tason ratkaisut vaikuttavat kyselyjen virittämiseen suunniteltava ja testattava yhdessä Suurin hyöty saadaan yleensä tarkoituksenmukaisella indeksoinnilla ja indeksien hyödyntämisellä SQL-kyselyissä Tällä kurssilla tutustutaan vain indeksointiin ja sen hyödyntämiseen SQL-lauseissa

HAAGA-HELIA Heti-09 6 (17) Fyysisen tason ratkaisut Tavoitteena on löytää loogisen tason rakenteelle riittävän tehokas fyysisen tason toteutus 1. Indeksien (hakemistojen) käyttö 2. Sekvenssien (id-numeron generointi) käyttö 3. Tietokantaobjektien sijoittelu 4. Tietokantaobjektien kokomääritykset 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 sivu = fyysinen tietue apumuistista keskusmuistiin (ja takaisin) siirrettävä tietomäärä sivukoko nykyisin 8 KB (Oracle, DB2, SQL-Server) + Rinnakkaisuuden hyödyntäminen + Resurssin jonotuksen välttäminen Fyysisen talletusrakenteen optimointi yksittäisen tietokantaoperaation näkökulmasta saattaa olla kokonaisuuden kannalta tehoton! Ratkaisut on testattava kattavasti

HAAGA-HELIA Heti-09 7 (17) Indeksointi Fyysisellä tasolla tietokannan taulut (ja data) tallennetaan yhteen tai useampaan tiedostoon Indeksi on tietorakenne, jonka avulla voidaan nopeasti hakea = poimia tietty tietue / tietueet peräkkäistiedostosta Saantimenetelmät ja Tiedosto-organisaatio Saantimenetelmä Miten tietoja voidaan hakea tiedostoista ja tallentaa tiedostoihin 1. Peräkkäishaku 2. Poiminta (=suorasaanti) 2.1. Poiminta indeksin avulla 2.2. Poiminta hajautusalgoritmin avulla Käytettävissä olevat saantimenetelmät riippuvat tiedoston organisointitavasta Tiedosto-organisaatio Miten tiedot on fyysisesti järjestetty tiedostoon 1. Peräkkäistiedosto 2. Indeksoitu peräkkäistiedosto 3. Hajarakenne (hash file) Tällä kurssilla tutustutaan vain peräkkäistiedostoihin, sillä ne ovat tavallisimmat tiedosto-organisaatiot relaatiotietokannoissa

HAAGA-HELIA Heti-09 8 (17) Peräkkäistiedosto Heap file Yksinkertaisin organisointitapa Tietueet varastoidaan siinä järjestyksessä kuin ne ilmaantuvat ts. uusi tietue sijoitetaan tiedoston loppuun poistettujen tietueiden vapauttamaa tilaa ei täytetä uusilla tietueilla Ainut saantimenetelmä on peräkkäishaku Lisääminen on tehokasta Tietyn tiedon haku hidasta (esim. tiedon lukua, päivitystä, poistoa varten) Suurten tietuemäärien luku nopeaa Indeksoitu peräkkäistiedosto Indexed sequential files Datatiedosto, jolle on määritelty pääindeksi Rakenne sallii sekä peräkkäiskäsittelyn että poiminnan Nykyään eniten käytetty tiedosto-organisaatio

HAAGA-HELIA Heti-09 9 (17) Indeksoidussa peräkkäistiedostossa on 2 tietorakennetta: Datatiedosto (Data File) sisältää loogiset tietueet Indeksitiedosto / Hakemistotiedosto (Index File) sisältää indeksitietueet Indeksitiedoston tietueessa on 2 kenttää: 1. hakukenttä (Indexing Field) 2. osoitekenttä, jonka arvona on sen sivun osoite, missä hakukenttää vastaava tietue sijaitsee Vrt. Kirjan hakemisto Indeksitiedoston tietueet on järjestetty hakukentän mukaan Datatiedosto Indeksi 1 0011 Volvo 0011 1 1 0551 Renault 0235 n n 0235 Audi 0551 1 n 1011 Toyota 1011 n Haku indeksoidun kentän mukaan nopeaa Uusien tietueiden lisäys ja poisto hieman hitaampaa, sillä datatiedoston lisäksi on päivitettävä indeksitiedostoa (huom: päivityksiä on tyypillisesti vähemmän kuin hakuja)

HAAGA-HELIA Heti-09 10 (17) Indeksityypit 1. Päähakemisto (primary index) 2. Toisiohakemisto (secondary index) Päähakemisto Primary Index Pääindeksin hakukenttänä on datatiedoston pääavain Pääindeksin hakukentän arvot ovat uniikkeja / yksilöiviä Autotiedosto Pääindeksi 1 0011 Renault 0011 1 2 0235 Audi 0235 2 3 0551 Toyota 0551 3 4 1011 Volvo 1011 4 5 1200 Renault 1200 5... Pääavain

HAAGA-HELIA Heti-09 11 (17) Toisiohakemisto Secondary Index Toisioavaimeksi valitaan kenttä / kenttiä, joiden perusteella tietoa haetaan usein Toisiohakemiston hakukentän ei tarvitse sisältää uniikkiarvoja Esim. Henkilön nimi Autotiedosto Toisioindeksi 1 0011 Renault Audi 2 2 0235 Audi Renault 1 3 0551 Toyota Renault 5 4 1011 Volvo Toyota 3 5 1200 Renault Volvo 4... esim. viiteavaimista tehdään usein toisiohakemisto

HAAGA-HELIA Heti-09 12 (17) Mitä indeksoida? 1. Pääavaimet mahd. automaattinen indeksointi (esim. Oracle) 2. Viiteavaimet mahd. automaattinen indeksointi (esim. Solid) 3. Muut sarakkeet? Valintakriteeri WHERE... Liitoskriteeri JOIN ON... (tyypillisesti viiteavain) Lajittelu ORDER BY... Ryhmittely GROUP BY... 4. Paksut indeksit? Mukana kaikki transaktiossa tyypillisesti tarvittavat tiedot! Indeksien avulla pyritään mahdollistamaan poiminta aina kun se on tarkoituksenmukaista (vähemmän levy-i/o:ta) Huom! Sarakkeiden 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 sarakkeille

HAAGA-HELIA Heti-09 13 (17) 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, openo) ; Indeksin poistaminen DROP INDEX index_name;

HAAGA-HELIA Heti-09 14 (17) Käyttösuosituksia Keskikokoisiin ja isoihin tauluihin Pieniin tauluihin vain pääavainindeksi Ei usein päivitettäviin sarakkeisiin Dokumentoi! 1. nimi 2. rakenne 3. tarkoitus

HAAGA-HELIA Heti-09 15 (17) 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ä Tiedonhallintajärjestelmän käyttämästä optimointialgoritmista Mahdollista indeksien käyttö hauissa ja liitoksissa (ellei tarkoituksena ole poimia kaikki tietueita) Käytä indeksoitua saraketta hauissa ja liitoksissa sellaisenaan, ei esim. laskutoimituksessa tai funktiossa Tietokannoissa tuotekohtaisia optimointiohjeita mahdollisesti myös vaihtoehtoisia optimointialgoritmeja (esim. sääntö- tai tilastoperustainen rule based / cost based optimizer)

HAAGA-HELIA Heti-09 16 (17) Sekvenssit Pääavainten generoimiseen voi käyttää sekvenssiä Sekvenssi on tehokkain tapa generoida uusi id Vanha tapa: select max(id) + 1 Sekvenssi mukana SQL-2003 standardissa Oraclessa sekvenssi ei takaa id-numeroiden 'peräkkäisyyttä' mutta se takaa niiden erilaisuuden l. identifioivuuden Sekvenssi luodaan komennolla CREATE SEQUENCE sekvenssin_nimi START WITH <integer> INCREMENT BY <integer> Sekvenssin arvoihin viitataan Oraclessa Sekvenssin_nimi.NEXTVAL Sekvenssin_nimi.CURRVAL Sekvenssi poistetaan komennolla DROP SEQUENCE sekvenssin_nimi SQL Server ei tue sekvenssiä Vastaava toiminnallisuus saadaan käyttämällä esim. pääavainsarakkeen identity ominaisuutta.

HAAGA-HELIA Heti-09 17 (17) Suoritussuunnitelma Tietokantatuotteissa erillisiä työkaluja suorituskyvyn selvittämiseen Oraclessa EXPLAIN PLAN suoritussuunnitelma explain plan for <komento>; explain plan for select * from taulu; explain plan tallentaa komennon suoritussuunnitelman PLAN_TABLE tauluun Suunnitelma haetaan taulusta SELECT-kommennolla suoritussuunnitelmasta käy ilmi mm. käytetäänkö SQLkomennon suorittamisessa indeksejä apuna vai tehdäänkö peräkkäishaku (Table Access Full) Lisätietoa Oracle Performance Tuning Guide and Reference