Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Samankaltaiset tiedostot
HELIA 1 (15) Outi Virkki Tiedonhallinta

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

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

Luento 2: Tiedostot ja tiedon varastointi

Tietohakemisto ja Transaktionkäsittely

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokanta (database)

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

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

D B. Tietokannan hallinta kertaus

Tieto ohjelmassa ja tietokoneella

Tietokantakurssit / TKTL

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

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

SQL - STRUCTURED QUERY LANGUAGE

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

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

FYYSINEN SUUNNITTELU

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Fyysinen suunnittelu

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

SELECT-lauseen perusmuoto

FYYSINEN SUUNNITTELU

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

Näkymät ja tiedon suojaus

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

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

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

D B. Kyselypuut ja ekvivalenssi

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Tietokannanhallintajärjestelmä (DBMS)

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

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

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

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

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

2 Konekieli, aliohjelmat, keskeytykset

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

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

Sovellusarkkitehtuurit

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

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

Relaatiomalli ja -tietokanta

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Tietokantajärjestelmien tulevaisuuden haasteet. Jan Lindström

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

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

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

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

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

TIETOKANNAN SUUNNITTELU

HELIA 1 (17) Outi Virkki Tiedonhallinta

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Transkriptio:

HELIA TIKO-05 1 (20) Tiedonhallintajärjestelmän rakenne ja Suorituskyky Tiedonhallintajärjestelmän rakenne... 2 SQL-käsittelijä... 3 Parsinta (Parser)... 3 Optimointi (Optimizer)... 3 Tilan käsittelijä... 4 Puskurin käsittelijä (Buffer Manager)... 4 Tiedoston käsittelijä (File Manager)... 4 Transaktion käsittelijä... 5 Samanaikaisuuden hallinta (Concurrency Control)... 5 Toipumisen hallinta (Recovery Control)... 5 Suorituskyky... 6 Suorituskyvyn mittareita... 6 Tekninen ympäristö... 7 Suorituskyvyn optimointi... 8 Optimointitoimenpiteet... 8 Suunnittele... 9 SQL-komentojen viritys... 10 Fyysisen tason ratkaisut... 11 Indeksit... 12 Looginen ja fyysinen taso... 16 Tietokantaobjektien kokomäärittely... 17 Tietokantaobjektien sijoittelu... 18 Sekvenssit... 19 Kokeile ja testaa... 20

HELIA TIKO-05 2 (20) 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 TIKO-05 3 (20) SQL-käsittelijä Parsinta (Parser) SQL-lauseen jäsennys o Syntaksin tarkistus o Taulu- ja sarakeviittausten tarkistus o Käyttöoikeuksien tarkistus Optimointi (Optimizer) Suoritussuunnitelman valinta l. käytettävät saantimenetelmät Tarvittavat tiedot löytyvät yleensä tietohakemistosta (metadata)

HELIA TIKO-05 4 (20) Tilan käsittelijä Puskurin käsittelijä (Buffer Manager) Keskusmuistin käsittely Pyytää tarvittavat sivut (page / block) tiedostonkäsittelijältä ja sijoittaa muistiin (elleivät ne ole jo siellä) Palauttaa sivut tiedostonkäsittelijälle levylle kirjoitusta varten Tiedoston käsittelijä (File Manager) Tiedostojen sijainti levyillä Saantimenetelmät Hakee / kirjoittaa tarvittavat sivut

HELIA TIKO-05 5 (20) Transaktion käsittelijä Samanaikaisuuden hallinta (Concurrency Control) Eheyden ja erillisyyden hallinta (Consistency & Isolation) Lukitukset Toipumisen hallinta (Recovery Control) Jakamattomuuden ja pysyvyyden hallinta (Atomicity & Durability) Lokit Transaktion käsitteeseen palataan seuraavalla tunnilla

HELIA TIKO-05 6 (20) Suorituskyky 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

HELIA TIKO-05 7 (20) 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...

HELIA TIKO-05 8 (20) Suorituskyvyn optimointi Lähtokohtina 1. Sovelluksen käyttötavat ja tietomäärät 2. Tiedonhallintajärjestelmän rakenne Optimointitoimenpiteet 1. SQL-lauseiden (yleensä kyselyjen) virittäminen 2. Fyysisen tason suunnittelu / talletusratkaisut Indeksit Levytilan käyttö 3. Tietokannan parametrit Puskurialueen koko Sivun koko Fyysisen tason ratkaisut vaikuttavat kyselyjen virittämiseen suunniteltava ja testattava yhdessä

HELIA TIKO-05 9 (20) Suunnittele 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 yhdistämisessä Mihin sarakkeeseen haku / päivitys kohdistuu Mitä indeksejä on käytettävissä + RDBMS:n erityispiirteet

HELIA TIKO-05 10 (20) 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 Tee SQL-käsittelijän työ mahdollisimman helpoksi Tarkkoja ohjeita kyselyjen kirjoittamiseksi vaikea antaa Mahdollista indeksien käyttö hauissa ja liitoksissa (ellei tarkoituksena ole poimia kaikki tietueita) Käytä indeksoitua saraketta sellaisenaan, ei esim. laskutoimituksessa tai funktiossa Käytä aina taulun nimeä tai aliasta sarakeviittauksissa Hyödynnä joukko-operaatioita (INTERSECT, UNION) Vältä alikyselyjä käytä liitoksia niiden sijasta jos mahdollista Vältä OR operaattoria ehtolausekkeissa Tietokannoissa tuotekohtaisia optimointiohjeita mahdollisesti myös vaihtoehtoisia optimointialgoritmeja (esim. sääntö- tai tilastoperustainen rule based / cost based optimizer)

HELIA TIKO-05 11 (20) 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. Oraclessa) 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 nykyisin 8 KB (Oracle, DB2, SQL-Server oletus) Rinnakkaisuuden hyödyntäminen + Resurssin jonotuksen välttäminen Fyysisen talletusrakenteen optimointi yksittäisen tietokantaoperaation näkökulmasta saattaa olla kokonaisuuden kannalta tehoton!

HELIA TIKO-05 12 (20) Indeksit Saantimenetelmät 1. Peräkkäishaku 2. Indeksoitu peräkkäistiedosto 3. Hajautus Indeksityypit 1. Päähakemisto (primary index) 2. Toisiohakemisto (secondary index) Indeksien avulla pyritään mahdollistamaan poiminta aina, kun se on tarkoituksenmukaista (vähemmän levy-i/o:ta)

HELIA TIKO-05 13 (20) 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 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 sarakkeille

HELIA TIKO-05 14 (20) 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 TIKO-05 15 (20) Käyttösuosituksia Keskikokoisiin ja isoihin tauluihin Pieniin tauluihin vain pääavainindeksi Ei usein päivitettäviin sarakkeisiin Dokumentoi indeksi! 1. nimi 2. rakenne 3. tarkoitus

HELIA TIKO-05 16 (20) Looginen ja fyysinen taso 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. Sivu / Lohko (Page / Block) 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 Oraclessa tyypillinen sivukoko 2 4 8 KB

HELIA TIKO-05 17 (20) 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ä) Lisäksi tarvitaan jonkin verran tilaa RDBMS:n tarvitsemille rakenteille (n.10%) Taululle pyritään varaamaan niin suuri tila, että se mahtuu sinne kokonaan (peräkkäishauissa ei tarvita lukupään uudelleenkohdistamista) Oraclen tilanvarausparametrejä käsitellään syventävällä Tietokantasuunnittelu -kurssilla

HELIA TIKO-05 18 (20) Tietokantaobjektien sijoittelu Taulut, indeksit ja lokitiedot eri levyille levyjen rinnakkainen käyttö ns. RAID -levynohjausjärjestelmä huolehtii itse datan tarkoituksenmukaisesta sijoittelusta

HELIA TIKO-05 19 (20) 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 (ts. numeroavaruudessa saattaa olla reikiä) 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;

HELIA TIKO-05 20 (20) Kokeile ja testaa Tietokantatuotteissa erillisiä työkaluja suorituskyvyn selvittämiseen Oraclessa EXPLAIN suoritussuunnitelma explain plan for <komento>; explain plan for select * from taulu; explain plan tallettaa komennon suoritussuunnitelman PLAN_TABLE tauluun. Suunnitelma otetaan taulusta esiin erityisellä SELECT-kommennolla. suoritussuunnitelmasta käy ilmi mm, aikooko RDBMS käyttää SELECT-komennon suorittamisessa indeksejä apuna vai tehdä tiedon hakuja peräkkäishakuna (Table Access Full). Lisätietoa Oracle Performance Tuning Guide and Reference Lisäksi tilastotietoa (trace) Levytilan käytöstä (myös tietohakemistossa) Indekseistä (myös tietohakemistossa) Levy I/O:sta Transaktioista Lukituksista Lokitiedoista