webForumDet fria alternativet

Långsamt att hämta ur databas

ASP

9 svar · 385 visningar · startad av kilpin

Medlem sedan apr. 200084 inlägg
Frågan#1

Hej,
jag håller på med en enkel databas till mina CD-skivor. Det går fint förutom att när man skall visa alla skovar (för tillfället 181 st inladga) så tar det väldigt lång tid att hämta listan.

Så här ser min kod ut (tagit bort massa HTML):

<!-- #include file="adovbs.inc" -->
<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & 				  	Server.MapPath("cdskivor.mdb"))
	Set RecSet = Server.CreateObject("ADODB.Recordset")
%>

<% Visabook = "SELECT * FROM album ORDER BY artist" 
   RecSet.Open Visabook, Connect, adOpenStatic, adLockOptimistic
%>

MASSA HTML

<%
	Dim nummer
	nummer = 1
	Do Until RecSet.EOF

%>

<% response.write(nummer) %>.</td>
<a href='<% =RecSet("url") %>' target="_blank"><%=RecSet("artist")%></a></td>
<%=RecSet("title")%>
<%=RecSet("format")%>
<%=RecSet("extra")%>

  <%
	nummer = nummer + 1
  	RecSet.MoveNext
	Loop 
	RecSet.Close
	%>

Ser någon några saker som kan medför att det går sakta eller är det helt enkelt acceptabelt när man ska hämta 181 st objekt?
Det tar upp till 30 sek att hämta och det när jag kör lokalt!

Mvh Ante

Medlem sedan apr. 200084 inlägg
#2

Nu har jag lagt ut online också och testar och det tar en väldans tid där också...

Kolla https://www.ante.nu/cdskivor

Medlem sedan sep. 20025 506 inlägg
#3

Fem sekunder tar det för mig, inte så fasligt lång tid.

Medlem sedan apr. 20022 743 inlägg
#4

tar drygt 4 sek för mig..

ta bort alla <% %>, eller iallafall så många som möjligt, och använd istället Response.Write. Varje gång du öppnar en asp -tagg så tar den kräm från servern

Medlem sedan aug. 20013 824 inlägg
#5

Detta borde nog snabba upp det lite ;)

<%    
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("provider=microsoft.jet.oledb.4.0; data source ="& Server.MapPath("cdskivor.mdb"))

Visabook = "SELECT * FROM album ORDER BY artist" 
Set recset = Connect.execute(visabook)
%>

MASSA HTML

<%
Dim nummer
nummer = 1
While not RecSet.EOF

	response.write(nummer) &".</td>"&_
		"<a href='"& RecSet("url") &"' target="_blank">"&_
		RecSet("artist") &"</a></td>"& RecSet("title") & RecSet("format") &_
		RecSet("extra")

	nummer = nummer + 1
	RecSet.MoveNext
Wend 

RecSet.Close
Set RecSet = Nothing
%>
Medlem sedan mars 20015 287 inlägg
#6

Du skriver ut en massa htmlkod som du inte (ännu) utnyttjar. Lägger du även font o dylikt i en stilmall får du ner koden.

Medlem sedan jan. 20001 372 inlägg
#7

Testa att använda dig utav GetRows, vet inet om det snabbar upp så jättemycket men det känns snabbare.

Sen kan du använda Response.Buffer = True och Option Explicit men då måste du dim:ma alla variabler. Det kanske itne snabbar upp hämtningen från databasen så mycket men det snabbar upp "köringen" på sidan

Medlem sedan apr. 200084 inlägg
#8

Att det är onödig HTML vet jag men jag tror inte att det hade så mycket med saken att göra. Ett stylesheet snabbar bara upp marginellt.

Jag har följt några av era råd med tillfredsställande resultat. Nu går det snabbare. Så här ser det ut nu:


<%    
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("provider=microsoft.jet.oledb.4.0; data source ="& Server.MapPath("cdskivor.mdb"))

Visabook = "SELECT * FROM album ORDER BY artist" 
Set recset = Connect.execute(visabook)
%>

MASSA HTML

                <%
Dim nummer
nummer = 1
While not RecSet.EOF

	response.write "<td width='25' valign='top'>" & (nummer) &".</td>"&"<td width='183' valign='top'>"&_
		"<a href='"& RecSet("url") &"' target='_blank'>"&_
		RecSet("artist") &"</a></td><td width='349' valign='top'>"& RecSet("title") & "</td>  <td width='123' valign='top'>" & RecSet("format") & "</td></tr>"&_
		"<tr><td colspan='4'><i>" & RecSet("extra")& "</i></td></tr><tr><td colspan='4'>&nbsp;</td></tr>"

	nummer = nummer + 1
	RecSet.MoveNext
Wend 

RecSet.Close
Set RecSet = Nothing
%>

Rätt mycket <td> och <tr> taggar men det är nog ett måste. Eller kanske inte ett måste men sidan är ju för mitt eget bruk så det är inte så viktigt att koden är snygg. Dessutom blir jag vansinning på dreamweaver som ändrar koden så fort jag öppnar sidan i den.

Kanske består även en del av problemet av att jag sitter med Telias ADSL som inte funkar så bra här där jag bor (de har de erkänt).

Tack alla för hjälpen!

Medlem sedan sep. 20011 722 inlägg
#9

För mig tog det någon sekund att köra sidan på alla cd skivor.

Medlem sedan mars 20015 287 inlägg
#10

Jag får fram koden snabbt, det är bara webläsaren som tar en stund på sig att "skriva ut den".

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
139 ms — ändringar (db)