Ohjelmistokehityksen menetelmät
  • Ohjelmistokehityksen menetelmät ja käytänteet
  • Tavoitteet
  • Työkalut
  • Toimeksiannot
    • Projektityön rajaukset ja toimeksiannot
    • Palkanlaskenta
    • Kilometrikorvaus
    • Laskutus
    • Laskun perintä
  • Ketterä ohjelmistokehitys
    • Agile esimerkki, sykli
    • Agile, Tuotteen tehtävälista
    • Agile, Käyttäjätarina ja käyttötapaus
    • Agile muu materiaali ja lähteitä
    • Agile termit (scrum)
  • Versionhallinta
    • Sanasto Git
    • Opas Gitin perusteisiin
    • Git perusteet 101
    • Git perusteet 102
    • Git perusteet 103
    • Git perusteet 104
    • Git perusteet 105
    • Git perusteet 106
    • Git perusteet 107
    • Git perusteet 108
    • Git muu materiaali ja lähteet
  • Yksikkötestaus
    • Ohjelmistotestauksen periaateet
    • NUnit lisääminen VS2019
    • NUnit perusteet 101
    • NUnit perusteet 102
    • NUnit perusteet 103
    • NUnit perusteet 104
    • NUnit perusteet 105
    • NUnit perusteet 106
    • NUnit muu materiaali ja lähteitä
    • TDD perusteet 101
    • TDD perusteet 102
    • TDD perusteet 103
    • TDD muu materiaali ja lähteitä
  • UML mallinnuskieli
    • Johdanto
  • Relaatiotietokannat
    • Johdanto
    • Sanasto
    • Mysql perusteet -videosarja
    • Pää- ja viiteavaimet
    • ER kaaviot
    • Viite-eheys ja ACID
    • SQL JOIN -lauseke
    • Normalisointi
    • SQL View
    • Tehtävä 001 Tietokannan suunnittelu
    • Indeksointi
      • Hitaat hakukyselyt
  • SQL harjoitukset ja esimerkit
    • Esimerkkitietokannan käyttöönotto
    • Mysql perusteet 101
    • Mysql perusteet 102
      • mysql-perusteet-102-vastaukset
    • Mysql perusteet 103
      • mysql-perusteet-103-vastaukset
    • Mysql perusteet 104
      • mysql-perusteet-104-vastaukset
    • Mysql perusteet 105
      • mysql-perusteet-105-vastaukset
    • Mysql perusteet 106
      • mysql-perusteet-106-vastaukset
    • SQL hakukyselyjä (VANHAT)
    • SQL harjoitukset syksy 2021
      • Vastaukset SQL harjoitukset syksy 2021
  • Miten yrittäjänä voin hyötyä ohjelmistokehityksen ostamisesta?
    • TL;DR
  • Toimeksiannot (2019/01)
    • Toimeksianto 2019/01
    • Käytänteet ja menetelmät
    • Konsoliohjelman refaktorointia
  • SCRUM harjoitustyö (2020/01)
    • Harjoitustyön sisältö
    • Harjoitustyö: Matkalasku
  • Toimeksiannot (2019/02)
    • Toimeksianto 2019/02
  • Toimeksiannot (2018/01)
    • Projekti 2018/01
    • Projekti 2018/01 Perjantaille 14.9
    • Projekti 2018/01 Käyttötapauksesta työtehtäviin
    • Projekti 2018/01 Ohjelmoinnin aloittaminen
    • Projekti 2018/01 TDD esimerkki
  • Harjoitteet (keskeneräiset)
    • Käyttäjätarinat
    • Pariohjelmointi
    • Versionhallinta
    • Testivetoinen kehitys
    • Jatkuva integraatio
    • Inkrementaalinen dokumentointi
Powered by GitBook
On this page
  • Olipa kerran ...
  • Asiakaspalvelijan näkökulmasta ...
  1. Relaatiotietokannat
  2. Indeksointi

Hitaat hakukyselyt

Luku pohjustaa asiaa miksi indeksit, taulujen osiointi ja muut vastaavat tavat ovat eduksi tietokantoja suunnitellessa.

Olipa kerran ...

vaatemyymälä, jonka yhdestä toimipisteestä on päästy laajenemaan useampaan kaupunkiin. Toimintatapoja on yhtenäistetty ja mukaan on otettu kassajärjestelmä, jonne myynnit merkitään. Tämä on mahdollistanut myös uusia tapoja tarjota palveluita asiakkaille. Kanta-asiakas voi esimerkiksi tilata vaatteensa verkkokaupasta ja käydä noutamassa tuotteet myymälöistä.

Asiakkaan saapuessa myymälään, on varmistettava hänen henkilöllisyytensä. Myymälän tiskillä on yksi kone, josta asiakaspalvelija hakee asiakkaan nimellä hänen tilauksensa. Järjestelmä kertoo mitkä tilaukset tai tuotteet ovat noutamatta. Annettuaan tuotteet asiakkaalle, merkitsee asiakaspalvelija kyseiset tuotteet noudetuksi.

Ajankohta sijoittuu suurimpiin juhlapyhiin ja monet asiakkaat ovat etsimässä vaatteita itselleen tai lahjaksi. Kyseisellä hetkellä myymälä oli normaalia ruuhkaisempi.

Palvellessaan nouto-asiakasta, hänen takanaan seisoi kaksi muuta asiakasta. Toisella oli mukanaan hänen valitsemansa vaatteet, toinen puolestaan etsi vaatteita lapsilleen. 6 min kuluttua jälkimmäinen asiakas poistui myymälästä.

Poistunut asiakas tarkoittaa menetettyä myyntiä. Miksi näin tapahtui?

Asiakaspalvelijan näkökulmasta ...

Myymälä on täynnä ja toinen asiakaspalvelija on jo varattu. Asiakas tulee kysymään ennalta maksettuja tuotteitaan, jotka on varannut. Asiakaspalvelija jättää sen hetkiset kesken ja siirtyy kohti tiskiä.

Tiskin takana on hyllykössä varatut tuotteet jo valmiiksi pakattuna. Ennen tuotteiden luovuttamista on ollut tapana, että kyseiset tuotteet tulee merkitä noudetuksi. Asiakas on asioinut usein kyseisessä vaatemyymäläketjussa ja hänellä on ollut useita varauksia.

Asiakaspalvelija kysyy asiakkaalta henkilökorttia. Asiakkaan varaukset haetaan kortissa mainitulla nimellä. Asiakaspalvelija kirjoittaa asiakkaan sukunimen hakukenttään. Kassajärjestelmän haku kestää 15 (pitkää) sekuntia.

Sukunimi on kuitenkin kovin yleinen ja tarjoaa kymmeniä vaihtoehtoja. Asiakaspalvelija pyrkii tarkentamaan hakua ja tekee uuden käyttäen suku- ja etunimeä. Kassajärjestelmän haku kestää 16 (pitkää) sekuntia.

Asiakas katselee ympärilleen ja ottaa hieman tukea tiskistä. Asiakaspalvelija huomaa tehneen virheen etunimeä kirjoittaessa ja tekee uuden haun. Kassajärjestelmän haku kestää 16 (pitkää) sekuntia.

Vihdoin! Asiakaspalvelija huomaa, että samalla nimellä löytyy useita tilauksia. Valitettavasti tilauksesta ei heti näe tuotteita joita tilauksessa on. Tilaukset pitää aukaista yksitellen. Asiakaspalvelija kysyy vielä puhelinnumeroa varmistaakseen, että on kyse oikeasta asiakkaasta. Ei ollut!. Asiakkaan taakse on tullut toinen asiakas vaatteet käsillään.

Tilauksista siirtyessä toiseen, ikävä kyllä järjestelmä tekee saman haun uudestaan. Kassajärjestelmän haku kestää 16 (pitkää) sekuntia.

Seuraava tilaus on oikea! Asiakaspalvelija noutaa oikean paketin ja luovuttaa sen asiakkaalle. Luovutus vahvistetaan asiakkaalle. Kassajärjestelmän vahvistaessa noudon, siinä kestää 5 sekuntia.

Asiakas päättää vielä ostaa joitakin pareja tarjouksessa olevia sukkia, jotka näki odottaessaan tiskillä. Asiakaspalvelija tekee kassajärjestelmään myynnin. Myyntiä varten tarvitaan asiakkaan yhteystiedot. Asiakaspalvelija hakee asiakkaan nimellä tietoja. Kassajärjestelmän haku kestää 10 (pitkää) sekuntia.

Tässä kohdin jo kolmas asiakas on tullut jonoon kysyäkseen neuvoa. Ensimmäinen asiakas on suorittamassa maksuaan. Ensimmäinen asiakas saa asiansa hoidettua ja asiakaspalvelija on sulkemassa hänen tilauksiaan sekä valmistautumassa ottamaan seuraavan asiakkaan... kunnes hän kuulee seuraavat sanat.

Ai niin! Sattuikohan minulla olla mitään muuta täällä varattuna?

Asiakaspalvelija hakee jälleen kerran asiakkaan nimellä hänen tilauksensa. (16 sekuntia) Tilauksia löytyy nimellä noin 20 kpl. Löytääkseen noudettavia tuotteita, joutuu asiakaspalvelija käymään läpi nämä kaikki varmistaakseen asian.

Kolmas asiakas lähtee myymälästä pois.

PreviousIndeksointiNextEsimerkkitietokannan käyttöönotto

Last updated 5 years ago