Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Optimera SELECT-sats

Postades av 2006-02-22 18:43:38 - Jakob Hellquist, i forum mysq, Tråden har 2 Kommentarer och lästs av 818 personer

Jag har en SELECT-sats som spänner över flera tabeller i en MySQL-databas, och jag har en känsla av att detta borde kunna lösas mycket effektivare. Kan man använda UNION eller liknande för att optimera, och hur skulle det i så fall se ut?

Användaren identifieras med sessionsvariabeln StudentQueryName.

Tabeller och fält:

RECEIVED
- StudentQueryName
- Lesson
- ExerciseName
- ReceivedYN

EXERCISESTOSEND
- ExerciseName
- ExerciseShortName
- ExerciseLink
- ExerciseOrder

DEADLINES
- StudentQueryName
- Lesson
- Deadline

Så här ser SELECT-satsen ut i dag:

++++++++++++++++++++++++
sqltemp="SELECT Received.Lesson, Received.ExerciseName, Received.ReceivedYN, ExercisesToSend.ExerciseOrder, Deadlines.Deadline, ExercisesToSend.ExerciseName, ExercisesToSend.ExerciseShortName, ExercisesToSend.ExerciseLink FROM Received, Deadlines, ExercisesToSend WHERE ((Received.StudentQueryName = '"& Request.QueryString("queryname") &"') AND (Deadlines.Lesson = Received.Lesson) AND (Deadlines.StudentQueryName = '"& Request.QueryString("queryname") &"') AND (Received.ExerciseName = ExercisesToSend.ExerciseName)) ORDER BY Deadlines.Deadline, ExercisesToSend.ExerciseOrder"

++++++++++++++++++++++++

Hur bör index läggas för att det skall gå så snabbt som möjligt? Kan man skapa index som spänner över flera tabeller..?

Tacksam för alla tips eller läshänvisningar!

Jakob


Svara

Sv: Optimera SELECT-sats

Postades av 2006-02-24 15:24:34 - Jens Pettersson

UNION använder du om du vill hämta snarlik data från olika tabeller i samma resultatset. Inte för detta fall med andra ord.

Jag tror MySQL säger att man skall skriva precis så som du gör. Personligen skriver jag dock dessa uttryck med JOIN-satser, men jag tror de omtolkas i MySQL till din syntax.

Prova sätt index på de fält du har i WHERE satsen istället, ett och ett i taget om det är enorma tabeller. Sen kan du köra "EXPLAIN " + SQLsats för att kolla hur många rader den måste parsa för att hitta dina kombinationer. Ju färre desto bättre.


Svara

Sv:Optimera SELECT-sats

Postades av 2006-02-25 22:06:13 - Jakob Hellquist

Tack Jens, vad bra, då jobbar jag vidare med EXPLAIN och index!

Jakob


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 665
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies