Normalt skall vi inte loopa genom fälten som i föregående exempel. Loopar tar tid
och oftast så vet vi ju vilka fält från databasen vi vill visa. Men även när vi använder 
konstruktionen RS("FÄLTNMAMN") eller RS(indexsiffra) 
så krävs en "sökning" då rätt fält skall hittas i fältkollektionen.
Genom att använda nedanstående metod så görs denna "fältsökning" bara en gång
Använder vi SELECT * FROM... kan det ju även hända att vi inte behöver alla fält som kommer
i resultattabellen.
En prestanda optimerad kod blir då:
(Eftersom IIS kompilerar ASP koden först gången den körs så kan 
koden vara lite trög första gången sidan laddas. 
Nästa gång har den fått upp farten)
<% 
' för att kunna mäta snabbheten så lagrar jag först nuvarande tid
startTime = now 
%>
<!-- #include file="connection.asp" -->
<%
' Deklarerar variablerna som skall användas
Dim Conn
Dim RS
' Nedanstående kall användas för objekt av type Field
Dim byteField, textField, memoField
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn
' Första optimeringen - tag bara de fält vi vill ha
Set RS = Conn.Execute("SELECT aBYTE, aTEXT, aMEMO FROM EXEMPELDATA ORDER BY aTEXT")
' Andra och viktigaste optimeringen
' Säger nedan vilket fältobjekt som är vilket fält
' Observera att om det är objekt så måste Set användas
' Det blir oftast STOR skillnad i fart om man använder fältobjekt
Set byteField = RS("aBYTE")
Set textField = RS("aTEXT")
Set memoField = RS("aMEMO")
%>
<TABLE BORDER=1>
<TR>
<td>aBYTE</td><td>aTEXT</td><td>aMEMO</td>
</TR>
<% Do While Not RS.EOF %>
   <TR>
      <td valign="top">
         <%= byteField %>
      </td>
      <td valign="top">
         <%= textField %>
      </td>
      <td valign="top">
         <%= memoField %>
      </td>
   </TR>
   <%
   RS.MoveNext
Loop
RS.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
%>
<%
' räknar ut skillnaden mellan nu (now) och den tid vi sparade innan 
' vi startade programkoden
="Tid i sekunder: " & DateDiff("s", startTime, now) 
%>
 
Förklaring till ovanstående program:
- Set RS = Conn.Execute("SELECT aBYTE, aTEXT, aMEMO FROM EXEMPELDATA ORDER BY aTEXT")
- Vi säger vilken tabell vi vill ha med hjälp av en vanlig SQL SELECT sats. Dessutom preciserar vi exakt vilka fält vi är intresserade av.
ORDER BY aTEXT gör att det sorteras enligt fältet aTEXT
 
- Set byteField = RS("aBYTE")
 Set textField = RS("aTEXT")
 Set memoField = RS("aMEMO")
 
- Genom att skapa fältvariabler så söker vi fram rätt fält en 
gång för alla. Om vi i en loop använder RS("aBYTE") så måste ADO för varje var söka fram det fält ti tabellen som heter aBYTE
 Nu vet den exekt vilket fält som avses och vikan då använda <%= byteField %> istället
 
Resultatet av ovanstående program blir:
| aBYTE | aTEXT | aMEMO | 
   
		| 1 | Textrad 1 | En längre testrad som kan vara rätt lång 1 | 
   
   
		| 1 | Textrad 10 | En längre testrad som kan vara rätt lång 10 | 
   
   
		| 2 | Textrad 11 | En längre testrad som kan vara rätt lång 11 | 
   
   
		| 0 | Textrad 12 | En längre testrad som kan vara rätt lång 12 | 
   
   
		| 1 | Textrad 13 | En längre testrad som kan vara rätt lång 13 | 
   
   
		| 2 | Textrad 14 | En längre testrad som kan vara rätt lång 14 | 
   
   
		| 0 | Textrad 15 | En längre testrad som kan vara rätt lång 15 | 
   
   
		| 1 | Textrad 16 | En längre testrad som kan vara rätt lång 16 | 
   
   
		| 2 | Textrad 17 | En längre testrad som kan vara rätt lång 17 | 
   
   
		| 0 | Textrad 18 | En längre testrad som kan vara rätt lång 18 | 
   
   
		| 1 | Textrad 19 | En längre testrad som kan vara rätt lång 19 | 
   
   
		| 2 | Textrad 2 | En längre testrad som kan vara rätt lång 2 | 
   
   
		| 2 | Textrad 20 | En längre testrad som kan vara rätt lång 20 | 
   
   
		| 0 | Textrad 3 | En längre testrad som kan vara rätt lång 3 | 
   
   
		| 1 | Textrad 4 | En längre testrad som kan vara rätt lång 4 | 
   
   
		| 2 | Textrad 5 | En längre testrad som kan vara rätt lång 5 | 
   
   
		| 0 | Textrad 6 | En längre testrad som kan vara rätt lång 6 | 
   
   
		| 1 | Textrad 7 | En längre testrad som kan vara rätt lång 7 | 
   
   
		| 2 | Textrad 8 | En längre testrad som kan vara rätt lång 8 | 
   
   
		| 0 | Textrad 9 | En längre testrad som kan vara rätt lång 9 | 
    
Tid i sekunder att utföra programmet: 0