---
title: "Optimering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10761-optimering"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "kristoffer"
published: "2001-07-24T12:16:00.000Z"
updated: "2001-07-24T21:46:00.000Z"
replies: 8
views: 274
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/10761-optimering"
---

# Optimering

## #1 — kristoffer, 2001-07-24T12:16Z

Jag har en sida som ökar värdet i en kolumn och därefter skickar vidare besökaren till en annan URL (som hämtas i databasen).

Finns det något som kan förbättras i följande kod:

```
<%@ ENABLESESSIONSTATE = False %>

<%
Option Explicit
Response.Buffer = True 

Dim objConn, objRS, strURL, strConn, strSQL

strConn = ...

strSQL = "SET NOCOUNT ON; UPDATE col1 SET fld1 = fld1 + 1 WHERE id = " & Request.QueryString("ID") & " " &_
"; SET NOCOUNT OFF; SELECT fld2 FROM col1 WHERE id = " & Request.QueryString("ID") & " "

Set objConn = Server.CreateObject("ADOdb.Connection")
With objConn
	.Open strConn
	Set objRS = .Execute(strSQL)
End With

strURL = objRS(0)

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Response.Redirect strURL
%>
```

Vilken/vilka cursor(s) skall jag använda för Execute?

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

## #2 — Lukaspojken, 2001-07-24T13:49Z

Jag såg en jätteliten optimering...:)

Du använder Request.QueryString("ID") två gånger kör in den i en variabel och använd variabeln i stället.

Jag förstår dock inte denna raden riktigt:

```
With objConn
.Open strConn
Set objRS = .Execute(strSQL)
End With

strURL = objRS(0)
```

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

## #3 — Pace, 2001-07-24T13:53Z

```
With objConn
.Open strConn
Set objRS = .Execute(strSQL)
End With
```

Denna koden bara förenklar, så att man slipper skriva objConn flera gånger. Men här kan man göra om det till:

```
objConn.Open strConn
Set objRS = objConn.Execute(strSQL)
```

Ännu en extrem optimering!

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

## #4 — LarsG, 2001-07-24T14:14Z

Som sagt,kodmässigt är det väl inte så mycket. 
Det man kan fundera på är att göra sql-uttrycket till en stored procedure. 
Man kan också lagra värdet på Url-en i formuläret så att man slipper hämta det.

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

## #5 — LarsG, 2001-07-24T14:16Z

Vad menar du med cursor vid execute? Om man gör 

```
set rs = conn.execute
```

så blir recordsetet read-only och forward-only och det är ju det bästa om man bara vill läsa ett värde.

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

## #6 — kristoffer, 2001-07-24T14:54Z

Ok. Men kan man tjäna något på att göra en lagrad procedur om man skall hämta data från endast en tabell?

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

## #7 — erka, 2001-07-24T16:03Z

ja det kan du, om du kör mssql i alla fall :)

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

## #8 — kristoffer, 2001-07-24T21:39Z

Och om man kör SQL Server? Varför tjänar man på det?

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

## #9 — Vide, 2001-07-24T21:46Z

Dialekten T-SQL som MSSQL använder innehåller en rikare syntax vilket medför att du kan skapa mer komplexa SQL-satser. Sedan är MSSQL också en mer kraftfull databas skapad för att tåla mycket trafik och samtidiga anrop.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10761-optimering
