TIETOKANTOJEN PERUSTEET MARKKU SUNI



Samankaltaiset tiedostot
TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

HELIA 1 (15) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

SELECT-lauseen perusmuoto

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

SQL:N PERUSTEET MARKKU SUNI

SQL - STRUCTURED QUERY LANGUAGE

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

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

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

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Luento 2: Tiedostot ja tiedon varastointi

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

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

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

D B. Tietokannan hallinta kertaus

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

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

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

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

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

Liitokset - haut useaan tauluun

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Ohjelmoinnin perusteet Y Python

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

Kyselyn yleisrakenne:

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Tietokantakurssit / TKTL

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

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

Excel 2010 ja QlikView. Mihin ja milloin pivot:ia voi käyttää

Relaation tyhjyyden testaaminen

FYYSINEN SUUNNITTELU

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

Pikaohje formaatin valmistamiseen

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

CSE-A1200 Tietokannat

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

SQL Buddy JAMK Labranet Wiki

HELIA 1 (17) Outi Virkki Tiedonhallinta

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

DOORS Word DOORS SoftQA Pekka Mäkinen

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Käsiteanalyysi prosessina ja tarveanalyysi

OUTER JOIN se vanha kunnon kaveri

Excel pivot. Sisällys

D B. Harvat hakemistot. Harvat hakemistot

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

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

3. Taulujen määrittely ja muuttaminen

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

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

D B. Kyselypuut ja ekvivalenssi

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

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

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Ryhmäkirjeen hyödyntäminen

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

OpenOffice.org Base 3.1.0

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

Relaatiomalli ja -tietokanta

Transkriptio:

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN SUUNNITTELU MARKKU SUNI

TARKASTELLAAN Tietokannan SUUNNITTELUN Vaihetta 5 SUUNNITTELE FYYSINEN ESITYSMUOTO

Tietokannan suunnittelun vaihe 5: Suunnittele fyysinen esitysmuoto Tavoite: Suunnitella optimaaliset tiedostojen organisointitavat perustaulujen ja indeksien osalta maksimaalisen suorituskyvyn saavuttamiseksi

5. Suunnittele fyysinen esitysmuoto Askeleet: 1. Analysoi tapahtumia 2. Valitse tiedosto-organisaatiot 3. Valitse indeksit

Vaihe 5: Suunnittele fyysinen esitysmuoto Mitä tehdään Tarkastellaan tiedosto-organisaatioita ja indeksejä. Järkevien päätösten tekemiseksi on tunnettava systeemi ja sen käyttäytyminen Tarkastellaan tapahtumia, arvioidaan niiden vaikutusta ja toimintaa usein suoritetuilla tapahtumilla suuri vaikutus suorituskykyyn liiketoiminnalle kriittisten tapahtumien kiireellisyys ja merkitys ajat, jolloin systeemissä on suuri kuormitus (huippuajat)

5.1 Analysoi tapahtumia (transaktioita) Tavoite: ymmärtää tietokantajärjestelmän tapahtumien toiminnallisuus ja analysoida tärkeät tapahtumat

5.1 Analysoi tapahtumia (transaktioita) Että tietokannan fyysinen suunnittelu onnistuisi hyvin, on ymmärrettävä suoritettavia tapahtumia Monessa tapauksessa olisi kohtuuttoman paljon työtä analysoida kaikki tapahtumat Voidaan tyytyä tärkeimpiin. On arvioitu, että noin 20% tapahtumista aiheuttaa 80% tiedonhausta myös koneajan käytöstä. tämä 80/20-sääntö pätee varsin usein

5.1 Analysoi tapahtumia (transaktioita) Mitä tapahtumia tarkastellaan? Mistä tietoa haetaan? Tapahtumakartta (kaavio) kuvaa mitkä taulut ovat käytössä tapahtumissa Tapahtumataulukko osoittaa samaa Millä alueilla voi olla ongelmia? Mitä tauluja tapahtumat käyttävät Mitä tauluja eniten käytetään tapahtumissa Analysoi joitakin näitä tauluja käyttäviä tapahtumia

5.1 Analysoi tapahtumia (transaktioita) (e) Enter details of a new member registered at a given branch uuden jäsenen tiedot toimistossa (k) Update/Delete the details of a given member jäsenen tietojen päivitys/poisto (p) List the title, category and availability of all videos at specified branch, ordered by category (q) List the title, category and availability of all videos for a given actor s name at specified branch, ordered by title ( r) List the title, category and availability of all videos for a given director s name at specified branch, ordered by title (s) List the details of all videos a spevified member currently has on rent

5.1 Analysoi tapahtumia (transaktioita) Arvioi tapahtumien tiheyttä Tiedossa oli, että StayHome tallettaa tietoja noin 20000 videofilmiä 400000 kasettia yli 100 toimistoa keskimäärin 4000 ja korkeintaan 10000 kasettia toimistossa 10000 ohjaajaa 30000 näyttelijää 60000 roolia

5.1 Analysoi tapahtumia (transaktioita) Taulu Video on ahkerassa käytössä Taulu VideoForRent on aika suuri Sen olisi syytä olla mahdollisimman tehokkaasti organisoitu Tarkastellaan siis näitä tauluja käsitteleviä tapahtumia

5.1 Analysoi tapahtumia (transaktioita) Tapahtumista on syytä tietää keskimääräinen ja maksimimäärä tunnissa minä päivänä ja mihin aikaan tapahtumaa käytetään milloin on huippuaika Esim.: yleensä tasaisesti keskiarvon mukaan, mutta torstaina 14:00 18:00 on huippuaika Onko tapahtumia, jotka suoritetaan vain tiettynä aikana? Onko samanaikaisia tapahtumia, jotka käyttävät paljon samoja tauluja?

5.1 Analysoi tapahtumia (transaktioita) Tietojen käyttöanalyysi kullekin tapahtumalle tapahtuman (miten?) käsittelemät taulut ja sarakkeet päivitettäville sarakkeille ehkä erillinen indeksi haun kohteena olevat sarakkeet hahmon (mallin, pattern) mukaan tapahtuva haku LIKE %Smith% aluehaku: salary BETWEEN 30000 AND 40000 tarkka haku: salary = 30000 kyselyssä liitoksiin osallistuvat sarakkeet odotettu tapahtuman esiintymistiheys (50 kertaa/pv) vaadittu suorituskyky (korkeintaan yksi sekunti)

5.1 Analysoi tapahtumia (transaktioita)

5.1 Analysoi tapahtumia (transaktioita) Tapahtuman analysoinnissa tarkastellaan haun kohteina olevia sarakkeita liitokseen osallistuvia sarakkeita järjestykseen vaikuttavia sarakkeita ryhmittelyyn osallistuvia sarakkeita valmiiden funktioiden käyttöä (AVG, SUM,... ) päivitettäviä sarakkeita HUOM.: päivittävä tapahtuma koskee tauluun kahdesti: lukua varten päivitystä varten

5.2 Valitse tiedosto-organisaatiot Tavoite: Valita tehokas tiedosto-organisaatio kullekin taululle

5.2 Valitse tiedosto-organisaatiot Tietokanta tai yksittäinen tiedosto toimii tehokkaimmin sopivasti organisoituna Jos lähes aina haetaan tietoa aakkosjärjestyksessä, on talletus paras tehdä siinä järjestyksessä Jotkut tiedosto-organisaatiot ovat tehokkaita ladattaessa paljon tietoa tietokantaan, mutta tehottomia muuten Voi olla, ettei käytetty järjestelmä anna valinnan varaa valita tehokas tiedosto-organisaatio kullekin taululle Joskus indeksitiedostoille voidaan valita organisaatio

5.2 Valitse tiedosto-organisaatiot Mahdollisia organisaatioita voisi olla heap hash Indexed Sequential Access Method (ISAM) B + -Tree jne...

5.2 Valitse tiedosto-organisaatiot Mahdollisia organisaatioita voisi olla: heap hyvä, kun dataa tuodaan tauluun massoina taulu on vain muutaman sivun mittainen koko taulu on läpikäytävä käsittelyn yhteydessä kun taululla on jokin muukin saantitapa heap huono, kun vain valittuja rivejä käsitellään

5.2 Valitse tiedosto-organisaatiot Mahdollisia organisaatioita voisi olla: hash hyvä, kun rivejä haetaan tarkalla avaimella varsinkin satunnaisesti hash huono, kun rivejä haetaan hahmon avulla hash-sarakkeen mukaan haetaan alueen avulla hash-sarakkeen mukaan rivejä haetaan muun kuin hash-sarakkeen perusteella rivejä haetaan osasarakkeen perusteella Hash-saraketta usein päivitetään

5.2 Valitse tiedosto-organisaatiot Mahdollisia organisaatioita voisi olla Indexed Sequential Access Method (ISAM) joustavampi rakenne kuin hash tukee hakuja tarkalla avaimella, hahmolla, alueella, osalla ISAM indeksi on staattinen, luodaan kerran suorituskyky heikkenee taulun päivitysten myötä päivitykset vaikuttavat tehokkuuteen

5.2 Valitse tiedosto-organisaatiot Mahdollisia organisaatioita voisi olla B + -Tree joustavampi kuin hash tukee hakuja tarkalla avaimella, hahmolla, alueella, osalla indeksi on dynaaminen, kasvaa taulun myötä suorituskyky ei laske päivitysten mukana säilyttää avainten järjestyksen jos taulua ei usein päivitetä, voi ISAM olla tehokkaampi (yksi indeksitaso vähemmän)

5.2 Valitse tiedosto-organisaatiot Dokumentoi valitut tiedosto-organisaatiot ja niiden perusteet

5.3 Valitse indeksit Tavoite Päättää, josko indeksien lisääminen parantaisi systeemin suorituskykyä

5.3 Valitse indeksit Mahdollisia ratkaisuja: Taulussa rivit järjestämättöminä ja niin monta toissijaisindeksiä (secondary indexes) kuin on tarpeen Taulu järjestettynä pääavaimen mukaiseen järjestykseen Taulu järjestettynä jonkin sarakkeen mukaisen järjestykseen sarake, jota useimmin käytetään liitoksissa (liitos tehostuu) sarake, jota useimmin käytetään rivien hakemiseen Jos sarake, jonka mukaan järjestetään, on avain, indeksi on primaarinen indeksi (primary index) Jos ei, kyseessä on klusteri-indeksi (clustering index) Yleensä voi olla vain toinen näistä kussakin taulussa

5.3 Valitse indeksit Miten luoda indeksi: Ensimmäisessä SQL-standardissa oli lauseet indeksien luontia varten Toisessa versiossa nämä jäivät pois Niiden katsottiin olevan fyysinen konsepti, eikä looginen Tulossa oleva standardi, SQL3 ei myöskään sisällä niitä Yleensä järjestelmät tukevat indeksinluontilauseita muodossa tai toisessa

5.3 Valitse indeksit Miten luoda indeksi: Tyypillisesti lauseen CREATE INDEX avulla CREATE UNIQUE INDEX catalogno_index ON video( catalogno ); Klusteroiva indeksi taululle VideoForRent: CREATE INDEX catalogno_index ON videoforrent ( catalogno) CLUSTER;

5.3 Valitse indeksit Miten luoda indeksi: Joissakin systeemeissä voidaan valita indeksin organisaatio lisäämällä lauseeseen optio: CREATE INDEX... STRUCTURE = BTREE ISAM HASH HEAP ; Indeksin hylkääminen tyypillisesti lauseella DROP INDEX catalogno_index;

5.3 Valitse indeksit Toissijaisten indeksien valinta (secondary indexes) Toissijaisten indeksien avulla voidaan perustaululle määritellä vaihtoehtoinen avain tiedon tehokasta hakua varten. Esim.: taulu Member indeksoidaan pääavaimen mukaan memberno Koska usein haetaan myös nimen perusteella, voisi olla järkevää rakentaa toissijainen indeksi nimen mukaan.

5.3 Valitse indeksit Toissijaisten indeksien valinta (secondary indexes) Toissijaisten indeksien tekemiseen, käyttöön ja ylläpitoon liittyy yleisrasitetta (overhead) indeksitiedoston rivin lisäys aina tauluun lisättäessä indeksitiedoston päivitys aina taulua päivitettäessä indeksitiedoston viemä levytila mahdollisesti kyselyjen hidastuminen: optimoija tarkastelee kaikkia toissijaisia indeksejä ennen optimaalisen kyselystrategian valintaa

5.3 Valitse indeksit Toissijaisten indeksien valinnasta Voidaan tehdä toivomuslista kaikista mahdollisista toissijaisista indekseistä ja sitten miettiä... 1. tee indeksi taulun pääavaimesta, ellei jo ole 2. älä indeksoi pieniä tauluja (jotka mahtuvat muistiin) 3. lisää toinen indeksi paljon hakuihin käytetylle sarakkeelle 4. lisää toinen indeksi paljon käytetylle vierasavaimelle 5. lisää toinen indeksi sarakkeille, joita usein käytetään liitoksiin (join) järjestämiseen (ORDER BY) ryhmittelyyn (GROUP BY) muihin lajitteluoperaatioihin (UNION, DISTINCT)

5.3 Valitse indeksit Toissijaisten indeksien valinnasta 6. lisää toinen indeksi sarakkeelle, jota käytetään funktioiden yhteydessä: SELECT branchno, AVG( salary) FROM staff GROUP BY branchno; voi olla ideaa tehdä indeksi salary:lle: index-only plan 7. lisää toinen indeksi sarakkeille, kun tuloksena voi olla index-only plan

5.3 Valitse indeksit Toissijaisten indeksien valinnasta 8. Vältä indeksiä usein päivitetylle sarakkeelle 9. Älä indeksoi saraketta, jos kyselyjen perusteella haetaan suuri osa taulusta ( esim. 25 %) taulun läpiluku (ns. tablespace scan) on tehokkaampi 10. Älä indeksoi sarakkeita, joilla on pitkiä merkkijonoja

5.3 Valitse indeksit Toissijaisten indeksien valinnasta - esimerkki Jos hakukriteereissä on useita ehtoja, joita yhdistää OR, ei indeksointi paljon auta. Jos taulun Video sarakkeet category ja dailyrental on indeksoitu, niin kysely SELECT * FROM video WHERE (category = Action OR dailyrental > 3 OR price > 15 ); ei toimi tehokkaasti: price-sarake on haettava läpiluvulla Mainituista indekseistä ei juuri olisi apua Jos OR-sanojen tilalla olisi AND, olisi indekseistä apua

5.3 Valitse indeksit Toivomuslistan karsiminen Kun toivomuslista on valmis, on aika miettiä kunkin indeksin vaikutusta päivityksiin Jos indeksin ylläpito todennäköisesti hidastaa tärkeitä päivitystapahtumia, harkitse indeksistä luopumista Toisaalta tietty indeksi voi tehdä päivityksistä tehokkaampia On hyvä idea kokeilla, milloin mahdollista: parantaako selvästi tehokkuutta parantaako vain hiukan tehokkuutta heikentääkö tehokkuutta

5.3 Valitse indeksit Toivomuslistan karsiminen Joissakin järjestelmissä on mahdollista tarkastella optimoijan toimintaa ja valintoja EXPLAIN-toiminto ORACLE: EXPLAIN PLAN Microsoft: Performance Analyzer DB2: EXPLAIN Utility Ingres: QEP-Viewing Facility Jos kysely vaikuttaa turhan hitaalta, tästä voi olla apua

5.3 Valitse indeksit Toivomuslistan karsiminen Jos tauluun viedään suuri määrä rivejä, voi olla järkevää pudottaa ensin indeksit suorittaa massapäivitys lisätä indeksit uudelleen Nyrkkisääntö: jos lisäys kasvattaa taulun rivimäärää yli 10%, on järkevää pudottaa indeksit sen ajaksi

5.3 Valitse indeksit Tietokannan statistiikan ylläpito Kyselyn optimoija luottaa tietokannan hakustatistiikkaan. Säilytetään systeemin katalogissa Lisättäessä indeksi järjestelmä vie siitä tiedon katalogiin Voi olla, että ylläpitäjän on suoritettava jokin ohjelma systeemin katalogin päivittämiseksi.

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Tietokannan taulujen haluttu talletusrakenne Monien tietokantajärjestelmien tapaan MS Access käyttää tiettyä kiinnitettyä tiedostorakennetta eipä tarvitse vaivautua valitsemaan

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Indeksien valinnasta MS Access tukee indeksejä. Taulun pääavain on automaattisesti indeksoitu Tietotyyppejä Memo, Hyperlink, OLE objekti ei voi indeksoida Muita sarakkeita voidaan indeksoida harkinnan mukaan

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Indeksien valinnasta Microsoftin neuvo harkitse indeksointia, jos sarakkeen tietotyyppi on Text, Number, Currency, Date/Time odotat sarakkeen arvoja haettavan odotat lajitteluja tehtävän arvojen perusteella odotat monia erilaisia arvoja talletettavan sarakkeelle jos monet arvot ovat samoja, ei indeksistä ole apua

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Indeksien valinnasta Microsoftin neuvo jatkoa harkitse liitosten molempien puolten indeksointia määritä suhde liitoskenttien välille Access luo automaagisesti indeksin vierasavaimelle ryhmiteltäessä rivejä liitoksessa mukana olleen kentän perusteella, kannattaa määritellä GROUP BY kentälle, joka on samassa taulussa kuin laskettava kenttä

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista MS Accessin piirteistä MS Access osaa optimoida yksinkertaisia ja monimutkaisia hakuehtoja (manuaalissa Expressions, lausekkeita) MS Access käyttää monimutkaisille kyselyille Rushmoretekniikkaa optimointiin Monimutkainen lauseke on yksinkertaisten yhdistelmä: branchno = B001 AND available = Yes category = Action OR dailyrental > 3

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista MS Accessin piirteistä MS Accessille kysely on kokonaan tai osittain optimoitava: ovatko yksinkertaiset lausekkeet optimoitavia millä operaatioilla ne yhdistetään Monimutkainen kysely on Rushmore-optimoitava, jos lauseke käyttää AND tai OR kahden ehdon liittämiseen molemmat ehdot koostuvat yksinkertaisista optimoitavista lausekkeista molemmat ehdot sisältävät indeksoituja kenttiä yksinkertainen indeksi tai osa yhdistettyä indeksiä

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Indeksin määrittely MS Accessille Aseta suunnittelunäkymässä (Design View) kentälle ominaisuus indeksoitu (indexed) Ominaisuudella indeksoitu on arvot: No ei indeksiä (oletus) Yes (Duplicates OK) indeksi sallii kahdennukset Yes (No Duplicates) indeksin oltava yksikäsitteinen

5 Esimerkki: ajatuksia StayHome videovuokraamon tauluista Indeksit videovuokraamon tauluille Määrittele joka taululle pääavain Access tekee indeksin Määrittele suhteet oikein suhdenäkymässä (Relationships) Access indeksoi vierasavaimet Tarkastelemalla tapahtumia arvioi muiden indeksien tarvetta

5 StayHome videovuokraamon tauluista Taulu sarake tapahtuma peruste Branch city (m) hakuehto Staff name (n) järjestys Video category (p) järjestys (u) hakuehto (v) ryhmittely title (q,r,u) järjestys Actor actorname (q) hakuehto (x) ryhmittely, järjestys Director directorname ( r) hakuehto Member fname/lname (s) hakuehto RentalAgreement datereturn (s) hakuehto Registration datejoined (y) hakuehto

It s a sad day in Paris With no girl by my side Got to feeling so badly Like a part of me died It would have been So good to see her I never thought She wouldn't be there There's no girl standing there And there's no one who cares And the trees are so bare On the Boulevard de la Madeleine The Moody Blues