Beerfroth (Originalarbeit)
Ich habe mit SQL Server und ASP ein einfaches Gästebuch geschrieben. Durch ständige Versuche habe ich festgestellt, dass es einige Unterschiede in den Ausführungsmethoden und der Zeit gibt, wenn Nachrichten auf Seiten angezeigt werden.
Schauen wir uns den Zeitvergleich mehrerer Methoden durch Vergleich an.
Verwenden Sie zunächst gespeicherte Prozeduren für das Paging. Diese Situation ist in zwei Methoden unterteilt:
Die erste besteht darin, das Befehlsobjekt wie folgt zu verwenden:
Setze Cmd=server.CreateObject("Adodb.Command").
Cmd.ActiveConnection=Verbindung
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.prepared=true'
set param=Cmd.CreateParameter("@iPageNo",adInteger,1,2,Page)
Cmd.Parameters.Append param
set param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Append param
setze rs=Cmd.execute
Die zweite Methode besteht darin, die Ausführungsmethode des Verbindungsobjekts direkt wie folgt auszuführen:
set rs=conn.execute („execute ycuu_gb_getmsg „&page&“, „&pagesizeConst“)
Zweitens verwenden Sie keine gespeicherten Prozeduren, sondern verwenden Sie direkt die Funktion von ADODB.RecordSet zum Paging. Der spezifische Code lautet wie folgt:
Set rs = Server.CreateObject("ADODB.Recordset")
sql = „Select * FROM Guestbook Order By dateandtime Desc“
rs.open sql,conn,1,1
rs.pagesize = 150'Die Anzahl der auf jeder Seite angezeigten Nachrichten,
total = rs.RecordCount
mypagesize = rs.pagesize
rs.absolutepage = page
Um die Geschwindigkeit deutlicher darzustellen, habe ich die Anzahl der auf jeder Seite angezeigten Nachrichten auf 150 erhöht (tatsächlich würde ich einen so großen Wert natürlich nicht einstellen). Was die Konfiguration meiner Maschine betrifft, werde ich sie weglassen, da sie hauptsächlich dem Geschwindigkeitsvergleich dient.
Es wurde festgestellt, dass die Ausführungszeiten wie folgt sind:
Der erste Typ: stabil zwischen 0,1953125 Sekunden und 0,2109375 Sekunden, der Durchschnittswert beträgt ungefähr: 0,20 Sekunden. Der zweite Typ: stabil zwischen 0,1716875
Sekunden und 0,1857 Sekunden, der Durchschnittswert beträgt ungefähr: 0,177
Die dritte Artvon Sekunden
: stabil zwischen 0,4375 Sekunden und 0,4632 Sekunden, der Durchschnittswert liegt bei etwa: 0,45 Sekunden
Wenn die Anzahl der gelesenen Datensätze jedoch 20 beträgt, sind die Ergebnisse wie folgt:
Es wurde festgestellt, dass die Ausführungszeiten wie folgt sind:
Der erste Typ: stabil zwischen 0,0390625 Sekunden und 0,0546875 Sekunden, der Durchschnittswert beträgt etwa: 0,045 Sekunden.
Der zweite Typ: stabil zwischen 0,046875 Sekunden und 0,0546875 Sekunden, der Durchschnittswert beträgt ungefähr Ja: 0,050 Sekunden.
Der dritte Typ: stabil zwischen 0,09375 Sekunden und 0,1015625 Sekunden.
Unter diesem Gesichtspunkt scheint es keinen großen Unterschied zwischen den beiden Methoden conn.execute zu geben command.execute.
Die Aufrufmethode des ersteren scheint einfacher zu sein.
Gleichzeitig ist hier ersichtlich, dass die Paging-Geschwindigkeit der gespeicherten Prozedur tatsächlich viel schneller ist als die Paging-Geschwindigkeit des Recordsets.
PS: Es ist das erste Mal, dass ich einen Artikel veröffentliche. Wow, wow. Es fällt mir wirklich schwer, einen guten Artikel zu schreiben. Ich werde in Zukunft hart arbeiten. Ich hoffe, dass mir diesmal jeder mein schlechtes Schreiben verzeiht. Übrigens möchte ich euch Helden auch fragen, welche der beiden Methoden conn.execute und command.execute besser ist, haha, denn alles, was ich im Internet gefunden habe, ist die letztere Methode zum Ausführen gespeicherter Prozeduren. Ich weiß nicht, warum ich nicht wie bisher das Einfache verwende.