anoniem Geplaatst: 20 januari 2003 Delen Geplaatst: 20 januari 2003 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? Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 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. Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 Hij voert eerst een query uit, dan bouwt ie een recordset op en die wordt d.m.v. een loop een de table geplaatst. Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 Als je veel records hebt kun je beter niet alle records tegelijk laden in een recordset. Doormiddel van een link zou je verder kunnen bladeren door de records. Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 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). Quote Link naar reactie
anoniem Geplaatst: 4 februari 2003 Auteur Delen Geplaatst: 4 februari 2003 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. Quote Link naar reactie
anoniem Geplaatst: 4 februari 2003 Auteur Delen Geplaatst: 4 februari 2003 [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. Quote Link naar reactie
anoniem Geplaatst: 4 februari 2003 Auteur Delen Geplaatst: 4 februari 2003 Inderdaad, hij flushed 'm wel, maar laat de tabel pas zien als ie volledig is ingeladen. Gaan we maar naar een andere oplossing zoeken. Thanx anyway. Quote Link naar reactie
anoniem Geplaatst: 4 februari 2003 Auteur Delen Geplaatst: 4 februari 2003 Je kan natuurlijk om de X rijen je table afsluiten en weer opnieuw openen. Zo krijg je allemaal kleine tables onder elkaar. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen