---
title: "Paging, prestandajämförelse"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/51399-paging-prestandajämförelse"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Johnsen"
published: "2002-08-27T12:54:42.000Z"
updated: "2002-08-28T08:36:43.000Z"
replies: 3
views: 279
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/51399-paging-prestandajämförelse"
---

# Paging, prestandajämförelse

## #1 — Johnsen, 2002-08-27T12:54Z

Bara för att kolla skapade jag två sidor på lite olika sätt.
Den ena går igenom ca 1700 poster på 3 sekunder,
medan den andra tar hela 8 sekunder på sig för samma sak.

Kan någon svara på vari prestandaskillnaden ligger?

Denna trodde jag skulle gå snabbast, men det gjorde den inte...

```
<%
Response.Write now() &"<br>"

Set Conn     = Server.CreateObject("ADODB.Connection")
Set Rec_show = Server.CreateObject("ADODB.Recordset")

	Conn.Open 	"Driver={SQL Server};" & _
			"Server=XXX.XXX.XX.X;" & _
			"Address=XXX.XXX.XX.X,1433;" & _
			"Network=DBMSSOCN;" & _
			"Database=Namn;" & _
			"Uid=userX;" & _
			"Pwd=XXXXXX;"

SQL_show = "SELECT INTEREFE, TULLID, REFNR1, UTLDAT FROM tutlin WHERE RECIROUTADDR='ROAD' ORDER BY UTLDAT DESC"
Rec_show.Open SQL_show, Conn, 3, 1

if Rec_show.eof Then
	response.write "Sökningen gav inga träffar!" 
Else

	Rec_show.PageSize	= 10
	antalPoster		= Rec_show.RecordCount
	antalSidor		= Rec_show.PageCount
	aktuellSida		= Request("sida")
	If aktuellSida = "" Then aktuellSida = 1
	Rec_show.AbsolutePage	= aktuellSida
	aktuellPost		= 0

	Response.Write "Funna poster: "& antalPoster &"<br>"

	Response.Write "Sida: "& aktuellSida &" av "& antalSidor &"<br>"

	If cint(aktuellSida) > 1 Then Response.Write "<a href=""default_page2.asp?sida="& aktuellSida-1 &"""> Föregående</a> | "

	If cint(aktuellSida) < antalSidor Then Response.Write "<a href=""default_page2.asp?sida="& aktuellSida+1 &"""> Nästa </a>"

	Response.Write "<hr>"

	do until Rec_show.eof or aktuellPost >= Rec_show.PageSize

		Response.Write Rec_show("INTEREFE") &"<br>"
		Response.Write Rec_show("TULLID")   &"<br>"
		Response.Write Rec_show("REFNR1")   &"<br>"
		Response.Write Rec_show("UTLDAT")   &"<hr>"

		aktuellPost = aktuellPost + 1
	Rec_show.movenext
	loop

End If

set Rec_show = nothing
Conn.Close
set Conn = nothing

Response.Write now() &"<br>"
%>
```

Denna utförde samma sak som den ovanstående, men dubbelt så snabbt...

```
<%
Response.Write now() &"<br>"

Set Conn = Server.CreateObject("ADODB.Connection")

	Conn.Open 	"Driver={SQL Server};" & _
			"Server=XXX.XXX.XX.X;" & _
			"Address=XXX.XXX.XX.X,1433;" & _
			"Network=DBMSSOCN;" & _
			"Database=Namn;" & _
			"Uid=userX;" & _
			"Pwd=XXXXXX;"

SQL_rakna = "SELECT COUNT(*) AS raknare FROM tutlin WHERE RECIROUTADDR='ROAD'"
set Rec_rakna = Conn.execute(SQL_rakna)

SQL_show = "SELECT INTEREFE, TULLID, REFNR1, UTLDAT FROM tutlin WHERE RECIROUTADDR='ROAD' ORDER BY UTLDAT DESC"
set Rec_show = Conn.execute(SQL_show)

if Rec_show.eof Then
	response.write "Sökningen gav inga träffar!" 
Else

	sidStorlek  = 10
	antalPoster = Rec_rakna("raknare")
	antalSidor  = Round((antalPoster / sidStorlek) + 0.499)
	aktuellSida = Request("sida")
	If aktuellSida = "" Then aktuellSida = 1
	startPost   = aktuellSida * sidStorlek - sidstorlek
	aktuellPost = 0

	Response.Write "Funna poster: "& antalPoster &"<br>"

	Response.Write "Sida: "& aktuellSida &" av "& antalSidor &"<br>"

	If cint(aktuellSida) > 1 Then Response.Write "<a href=""default_page.asp?sida="& aktuellSida-1 &"""> Föregående</a> | "

	If cint(aktuellSida) < antalSidor Then Response.Write "<a href=""default_page.asp?sida="& aktuellSida+1 &"""> Nästa </a>"

	Response.Write "<hr>"

	Rec_show.move startPost
	Do Until Rec_show.eof Or aktuellPost >= sidStorlek

		Response.Write Rec_show("INTEREFE") &"<br>"
		Response.Write Rec_show("TULLID")   &"<br>"
		Response.Write Rec_show("REFNR1")   &"<br>"
		Response.Write Rec_show("UTLDAT")   &"<hr>"

		aktuellPost = aktuellPost + 1
	Rec_show.movenext
	loop

End If

set Rec_show  = nothing
set Rec_rakna = nothing
Conn.Close
set Conn = nothing

Response.Write now() &"<br>"
%>
```

Permalänk: https://www.webforum.nu/p/51399

## #2 — Nickemannen, 2002-08-27T14:44Z

Det är klart du använder ju inte

Set Rec_show = Server.CreateObject("ADODB.Recordset")

vilket jag inte fattar varför det finns, jag använder det aldrig tycker att det förstör prestandan enormt att använda det

Permalänk: https://www.webforum.nu/p/763906

## #3 — PatrikB, 2002-08-27T15:15Z

Kanske skulle testa att ändra denna rad:

```
Rec_show.Open SQL_show, Conn, 3, 1
```

till:

```
Rec_show.Open SQL_show, Conn, 1, 3
```

borde gå ngt fortare ... men, inte lika fort kanske som det andra exemplet \*ler\*

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/763931

## #4 — Johnsen, 2002-08-28T08:36Z

Ok. Jag provade med att ändra som du sa, PatrikB, men det gav ingen märkbar förbättring.
Har jag fattat rätt om jag tror att:

Rec_show.Open SQL_show, Conn, 3, 1 
ger en statisk kopia av Rec, där förändingar gjorda av andra inte visas
och som indikerar att det är en öppning av typen read only.

och

Rec_show.Open SQL_show, Conn, 1, 3
visar förändringar gjorda av andra och låser recorden endast när man uppdaterar.

Permalänk: https://www.webforum.nu/p/764322

---

Tråden på webben: https://www.webforum.nu/amne/asp/51399-paging-prestandajämförelse
