Har några sidor som är gjorde i klassisk ASP. Tips 1: Kolla index på tabellerna När du säger riktigt mycket, vad pratar vi om för mängder och antalet tabeller du joinar då? Varje gång du kollar i forumet på samlingssidan så går databasen igenom 3 miljoner statistikrader tillsammans med de poster som du ser.. Som mikael sa, index är en första sak att se på. Sen kan det löna sig att ha en tabell med samanställd information- ex via triggers om det är för stora mängder men då bukar man prata om 20-30 miljoner records kanske.. Hejsan, lite sent svar kanske...men nu blev det aktuellt att kika på detta :)statistik generering time.ar ut - alternativ?
Datat i databasen har nu blivit RIKTIGT mycket så när statistikgenereringen körs så blir det time out.
Funderar om det går att göra nån sorts asynkron funktion som gör att sql-frågan körs i bakgrunden, sidan laddas om med auto-refresh och visar "sql-frågan väntar på att slutföras" typ...
Så kan den göra i några minuter enda tills det är klart och vips så får man upp resultatet.
Har sett denna funktion på vissa söksidor i forum.
Vet dock inte hur man gör detta på bästa sätt...nån som kan förklarar hur, eller ge mig en fin länk till bra info?Sv: statistik generering time.ar ut - alternativ?
Tips 2: Kör SQL 2005 (Då finns asynkrona db-anrop)
/mickeSv:statistik generering time.ar ut - alternativ?
För att öka toleransen på asp-sidan, server.scripttimeout = 15000Sv: statistik generering time.ar ut - alternativ?
10 talet tabeller med en väldans massa subquerys, summeringar, group bys som sedan joinas ihop i en och samma fråga. Runt 100.000 rader ungefär. Problemet är att det är så många uträkningar som görs i en och samma sida samt så görs det nya frågor och uträkningar när jag loopar igenom resultatet vilket gör att svarstiden på sidan ökar exponentiellt då rapporterna är för lite längre perioder. Det i kombination med att jag inte lagt en sekund på optimeringsjobb är nog problemet gissar jag.
Jag kollade iaf upp vilka kolumner som är inblandade i mina querys och provade att skapa ett par index. Då rapporterna är mellan 2 datumintervall så hjälpte ett index på datum-kolumnen väldans mycket. Vissa frågor gick 5 gånger fortare!
En lite intressant grej var att när jag skapade 1 index så ökade faktist tiden för att köra frågan dubbelt. Har inte riktigt förstått varför men tog iaf bort det indexet.
Men nya index i kombination att jag skriver ut statusinfo/progressbar och flushar bufferten för webbsidan gör att den inte time:ar ut längre.
Längsta tiden för att köra sidan är nu 7 minuter för att få fram senaste halvårets statistik.
Hoppas de kan leva med det så jag slipper skriva om koden :)
Får väl köra nåt nattligt batchjobb annars för vissa rapporter.