Kmom06: Prestanda

By . Latest revision .

Vi fortsätter med programmering i databasen, denna gången med “funktioner” som har en liknande struktur som lagrade procedurer och triggers.

Vi studerar hur databasen jobbar internt för att optimera SQL-frågor och hur index kan användas för att optimera databasen.

Vi jobbar vidare med terminal- och webbaserade klienter mot databasen och fortsätter att implementera vår eshop.

Optimering av en databas sker på många olika nivåer.

Optimering av en databas sker på många olika nivåer.

En egendefinierad funktion som kan underlätta när man gör rapporter med SQL.

En egendefinierad funktion som kan underlätta när man gör rapporter med SQL.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Läs & Studera

(ca: 4-10 studietimmar)

#Kurslitteratur

Läs följande:

  1. Databasteknik
    • Kap 9: Sammanfattning av SQL-kommandon
    • Kap 22: Index och prestanda

Vissa av kapitlen finns i bokens webbkurs, del 2.

Det finns ytterligare ett kapitel i boken som är relaterat till prestanda, det går utanför kursens ram men läs vid intresse.

  1. Databasteknik
    • Kap 23: Fysiska lagringsstrukturer i databaser

#MySQL dokumentation

Bekanta dig med följande:

  1. I manualen för MySQL kan du läsa om optimering och i vilka olika nivåer som optimering kan utföras. Kika på nedanstående kapitel för att skaffa dig en översikt om möjligheter för optimering.

  2. Du har tidigare läst i MySQL manualen om lagrade procedurer (stored procedures), triggers och compound statements. Komplettera det med att nu läsa (i samma kapitel) om “funktioner” som skapas med CREATE FUNCTION. Läs översiktligt följande i manualen.

#Modellering

Läs följande.

  1. Läs igenom foruminlägget om “Vad välja som primärnyckel till en databastabell?”, det ger en snabb orientering i hur man kan tänka när man väljer primärnyckel i en tabell (eventuellt har du redan läst om detta i kmom05).

#Extra

Gör följande som ren överkurs, om du har tid, energi och lust.

  1. Kika på foruminlägget “Exempelkod Node.js, Express, MySQL och login med sessioner” som visar hur du löser login med sessionshantering i Express. Detta är dock inget vi kommer använda i kursen.

#Övningar & Uppgifter

(ca: 8-10 studietimmar)

#Övningar

Genomför följande övning för att förbereda inför uppgifterna.

  1. Läs (och jobba) igenom artikeln “Använd TIMESTAMP för status i databastabellen” som visar hur du kan använda tidsstämplar för att ge olika status till rader i en databastabell. Du behöver inte spara de exempelprogram du gör.

  2. Jobba igenom “Egendefinierade funktioner i databas” för att lära dig hur konceptet kan användas i en databas. Spara dina exempelprogram i me/kmom06/func.

  3. Jobba igenom övningen “Index och prestanda i MySQL” som tränar dig i hur du kan optimera dina databasfrågor med index. Spara dina testprogram i me/kmom06/index.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Bygg databasen till en Eshop (del 2)” där du slutför implementationen av din databas. Spara all kod under me/kmom06/eshop2.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i redovisningstexten.

  • Förklara begreppet index i databas för en nybörjare, berätta varför index är viktigt. Skriv ett kort stycke (3-7 rader).
  • Berätta vilka extra index du tillförde i din eshop.
  • Berätta kort hur du ser på nyttan med funktioner i databasen.
  • Kommentera arbetet med din eshop, är du nöjd eller finns förbättringspotential och hur tycker du svårighetsgraden har varit på uppgiften eshop som helhet?
  • Berätta om någon extra sak du valde att göra i din eshop, om du gjorde något.
  • Vilken är din TIL för detta kmom?

#Revision history

  • 2019-03-20: (D, mos) Övning om TIMESTAMP.
  • 2019-02-25: (C, mos) Uppdaterat inför vt19.
  • 2018-12-19: (B, mos) Uppdaterat läsanvisning utgåva 2 av kursbok.
  • 2018-02-20: (A, mos) Första utgåvan.

Document source.