Ga naar inhoud

[ASP] Records-tabel - Hoe kan ik de snelheid verbeteren?


anoniem

Aanbevolen berichten

Ik heb een .asp pagina met een tabel. Deze tabel heeft een vaste titel <tr> Deze tabel heeft een variabele records <tr> D.m.v. een loop haalt de pagina alle benodigde records uit de database. Nu staan er 300 records in en het duurt ongeveer 15 sec. voordat ie de tabel met gegevens laat zien. Ik heb een kabelverbinding. Database is Access2000 Hoe kan ik dit proces optimaliseren, zodat de gegevens sneller getoond worden?
Link naar reactie
Voer je 300 keer een query uit of haal je een recordset op en loop je daar door heen? En wat doe je verder met deze gegevens? M.a.w. met deze summiere informatie valt er niet veel zinnigs te zeggen over de oorzaken. Wat heb je overigens zelf al geprobeerd? Op internet moet genoeg te vinden zijn over [url=http://www.google.nl/search?sourceid=navclient&hl=nl&q=asp+performance+tips]performance tips[/url] lijkt me.
Link naar reactie
Een relatief onbekende methode om te werken met recordsets zijn overigens de [url=http://www.devguru.com/Technologies/ado/quickref/recordset_getrows.html]GetRows()[/url] en [url=http://www.devguru.com/Technologies/ado/quickref/recordset_getstring.html]GetString()[/url] methods van het recordset object. bijv: [code:1:6997eef45a] Set oRs = oCon.Execute("SELECT foo, bar FROM tabel") a_mItems = oRs.GetRows() oRs.Close set oRs = Nothing ' hierna kan je met een "for next" loop-en door je array met gegevens ' ipv loop-en door je recordset [/code:1:6997eef45a] Deze methods zijn sneller dan rechtstreeks werken met de recordset. Bij te veel gegevens is het inderdaad aan te raden eens te gaan kijken naar de mogelijkheid om de gegevens over meerdere pagina's te verdelen (zoek maar eens op "[url=http://www.google.nl/search?sourceid=navclient&hl=nl&q=recordset+paging]recordset paging[/url]" voor verschillende methodes waarop je dat kan aanpakken).
Link naar reactie
  • 2 weken later...
Kent iemand het flush commando? Hoe kan ik deze toepassen op een simpele query die alle records in een table plaatst: [code:1:4d9bf84f26]Set con = Server.CreateObject("ADODB.Connection") con.Open "DSN" sql = "SELECT * FROM table" set Rs = con.Execute(sql) WHILE NOT Rs.EOF %> <Table> <% WEND %>[/code:1:4d9bf84f26] Als het goed is wacht ie dan niet totdat alle rijen zijn ingeladen, maar laat ze direct zien.
Link naar reactie
[quote:a10ea8f598="Johant"]Kent iemand het flush commando?[/quote:a10ea8f598] [i:a10ea8f598]flush[/i:a10ea8f598] als in: [i:a10ea8f598]response.flush[/i:a10ea8f598]? Ja, die ken ik. [quote:a10ea8f598="Johant"]Hoe kan ik deze toepassen op een simpele query die alle records in een table plaatst: [/quote:a10ea8f598] bijvoorbeeld zoiets: [code:1:a10ea8f598] response.buffer = true Set con = Server.CreateObject("ADODB.Connection") con.Open "DSN" sql = "SELECT * FROM table" set Rs = con.Execute(sql) WHILE NOT Rs.EOF response.write "bla" response.write "bla" response.flush rs.movenext WEND %>[/code:1:a10ea8f598] [quote:a10ea8f598="Johant"]Als het goed is wacht ie dan niet totdat alle rijen zijn ingeladen, maar laat ze direct zien.[/quote:a10ea8f598] ja en nee, de opgebouwde buffer wordt wel doorgestuurd naar de client, maar de user agent (bijv: IE) zal de toegestroomde content ook moeten parsen en dat is bij mijn weten niet te beinvloeden. Bijvoorbeeld NS4 stond er altijd om bekend een pagina met tables pas te tonen wanneer de volledige table binnen was.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...