Har en listning på 20000 poster som tar otroligt mycket tid (1,30 min). Finns det något sätt att börja visa poster med en gång och ladda in resten i bakgrunden. Jag fyller i detta fallet en datagrid med ett dataset. Spontant skulle jag säga att det är fel att visa upp 20.000 poster på en sida. Jag tror inte det finns en användare som ens har möjlighet att gå igenom en sån mängd data. Du kanske skall prova att göra någon form av urval i stället på sidan och bara visa en del av datat? Du har helt rätt. Jag har ett antal urval det är bara att jag får rekomendera/tvinga användaren att ange några urval. Men hur kan jag gå till väga för att snabba upp det ytterligare, jag skall optimera SQL-frågorna lite men behöver gör något mer. Kan din HTML renderas utan att sidan är helt nedladdad? Som Andreas säger, man kan sätta om response.buffer till false vilket innebär att vartefter data kommer, så skickas det ut till skrivaren. Men problemet är större, 20000 rader som är formaterade med html blir en fasligt stor html-fil att ladda hem för användaren. Annars kan du ju använda Paging.Vet dock inte excakt hur den funkar men den vissar ju bara ett visst antal poster per sida. vilket gör att du inte får mils långa sidor, uatn kan tex välja att visa 100/sida. table scan är effektiva om en tabell innehåller få värden. T.ex. om man har ordertyp och det finns fem ordertyper. ÄR det inte effektivt att ha en index på kolumnen. Hej, Tack för många intressanta tips. Har tittat lite på Paging i kombination med joinad fråga i en Stored procedure och då laddar det upp datat snabbt och bra givetsvis beroende på hur många poster jag laddar. Har dock inte rett ut ännu hur sorteringen funkar då?Prestanda i Asp.net
Sv: Prestanda i Asp.net
Sv:Prestanda i Asp.net
Finns det bra artiklar i ämnet som kan rekomenderas?
Finns det någon metod för att ladda alla sidor i bakgrunden vid uppstart av en klient så man slipper den längre laddningstiden första gången innan sidan är cachad?Sv: Prestanda i Asp.net
Buffrar du resultatet?Sv:Prestanda i Asp.net
När det gäller optimering så är det kunskap och hantverk som går hand i hand. Det är något man till viss del kan lära sig, men även surt förvärvad kunskap med många tester. Det första du skall fundera på är om du har ett index som hjälper dig. Sen att du har en snabb databas innan du ens börjar tänka på optimering. Se även till att du inte kör någon full tabl scan, vilket innebär att du måste loopa igenom samtliga poster (dvs saknar index).
Är det en join så kan man också tänka på saker för att inte hämta upp allting på en gång, eller inte köra en join mot för många tabeller. Ibland kan det löna sig att göra temporära tabeller, men allt är från fall till fall. Så något direkt svar är tyvärr svårt att ge utan att veta mer om tabeller, databas, struktur och hur mycket data klienten skall ta emot.
Ett sätt att tänka är att bryta ner det i kanske 2 -3 delmoment. Säg att du har en kundtabell, en ordertabell och en med orderrader. Orderraderna är 10 miljoner. Alltså vet du att den är störst. Den minsta borde vara kund. Därför listar du alla kunder, användaren väljer en kund. Nästa selektering är order - då visar du alla orderhuvud för den kunden, och sen när man väljer ett orderhuvud, listar alla orderrader för aktuell order.
Skulle du ha ett kundregister med 100000 poster, ja då finns säkert någon indelning där - kanske en ort, eller liknande. Då kan du även där lägga en för-selektering.
Om du gör enligt dessa steg kommer konsumenten att få ta fler beslut, men du kommer således inte att tråka ut kunden med långsamma svarstider och material som är så stort att ingen kan läsa.
Hoppas detta gav någotSv: Prestanda i Asp.net
Sv: Prestanda i Asp.net
Jag sa inte at man skall stänga av buffert. Men du måst flusha bufferten med jämna intervall. T.ex. var 10, 100, eller 1000 post.Sv:Prestanda i Asp.net
Detta är vad jag tror:
På en tabell kan man sätta <b>style="table-layout:fixed;"</b>, vilket gör att varje rad i tabellen skrivs ut efter att den är "färdig".
Det gär ju att användaren i alla fall inte uppfattar det som så långsamt. När det blivit så många rader att scrollbaren synse, så ser man ju inte längre att sidan fortfarande laddas.
Hur detta fungerar på en datagrid vet jag inte. Men datagriden blir väl en tabell i slutändan, så det kanske funkar.
/JockeSv: Prestanda i Asp.net
Fråga:
Hur flashar man sin buffert??