Hej, Prova att sätta index på de fält som du har i din where sats, det brukar göra susen. Jag har index på dem redan, men det går ändå klart långsammare än med Access. Bör man ändra SQL-satsen till INNER JOIN osv, eller spelar det ingen roll? ok bra! Ja det blir bättre prestanda med join istället för att rada upp tabellerna efter from satsen. OK, tack för tipset! Hur skulle syntaxen se ut med JOIN i stället..? <citat> Hur ser din datastruktut ut? Länkar du mot naturliga/sträng nycklar? Nu är hastigheten OK. Det var några missade index som låg bakom det, trots allt. Tack skall ni ha!SQL-sats som går snabbare i MSAccess
Har precis bytt från Access till MySQL bakom en webbplats, och min tidigare kod fungerar bra utom en sida med en SELECT-sats som nu tar 3-4 ggr längre tid att ladda från MySQL än den tog när jag körde mot MSAccess... Koden är inget mästerverk (som ni ser) men har funkat bra, fast tydligen är MySQL lite kräsnare än Access ;-).
Någon som har en idé hur jag bör skriva om den för att snabba upp?
Danke!
Jakob H.
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"Sv: SQL-sats som går snabbare i MSAccess
Sv:SQL-sats som går snabbare i MSAccess
JakobSv: SQL-sats som går snabbare i MSAccess
Nu var det ett tag sedan jag jobbade med mysql men i mssql finns det en query analyzer där man kan testköra frågan och samtidigt visa "Execution plan". Då ser du vad det är som tar lång tid.Sv:SQL-sats som går snabbare i MSAccess
Saludos,
JakobSv:SQL-sats som går snabbare i MSAccess
Ja det blir bättre prestanda med join istället för att rada upp tabellerna efter from satsen.
</citat>
Det kan du inte säga generellt.
Eftersom frågorna är semantiskt ekvivalenta borde de resultera i samma exekveringsplan. Sv: SQL-sats som går snabbare i MSAccess
Jag tror du kan öka prestandan avsevärt om du använder numeriska-auto-inkrementerande nycklar.
JAg tror inte denna fråggan ger bättre prestanda. Men du kan ju testa.
queryname = Request.QueryString("queryname")
sqltemp="SELECT Received.Lesson, Received.ExerciseName, Received.ReceivedYN, " + vbCrLf + _
" Deadlines.Deadline, " + vbCrLf + _
" ExercisesToSend.ExerciseOrder, ExercisesToSend.ExerciseName, ExercisesToSend.ExerciseShortName, ExercisesToSend.ExerciseLink" + vbCrLf + _
"FROM (SELECT * FROM Received WHERE Received.StudentQueryName = "& SQLText(queryname) &") Received INNER JOIN" + vbCrLf + _
" (SELECT * FROM Deadlines WHERE Deadlines.StudentQueryName = "& SQLText(queryname) &") Deadlines ON Received.Lesson = Deadlines.Lesson INNER JOIN " + vbCrLf + _
" ExercisesToSend ON Received.ExerciseName = ExercisesToSend.ExerciseName" + vbCrLf + _
"ORDER BY Deadlines.Deadline, ExercisesToSend.ExerciseOrder"
Sv: SQL-sats som går snabbare i MSAccess