Das Folgende ist das Codefragment: '****************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************,* '** Dieser Programmname: "Infinite Stream" Paging -Programm '** Autor: Arbiter (AASX) '** Version: Million Level '** '** QQ: 22222xx '** E -Mail: [email protected] '** http://www.images.org/ '****************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************,* '** '** [Wörter des Autors] '** '** Paging -Programm ist zweifellos eine problematische Sache bei vielen Netzwerkprogrammenfunktionen '** Die meisten Menschen verwenden immer noch die traditionelle Paging -Methode (rs.pageSize = xx), um zu verstehen '** Datenbankoperationen wissen, dass diese traditionelle Methode einen Nachteil hat: Wenn die Seite zum ersten Mal geöffnet wird, '** Es wird alle Datensatzsätze gelesen. '** Seiten werden auch sehr langsam sein und Ressourcen besetzen. Für Daten von mehr als 100.000 oder mehr '** Bibliothek Diese traditionelle Paging -Methode ist sehr schwach geworden, geschweige denn eine Million Levels (ich kann überhaupt nicht ficken '** Tun). Aus diesem Grund habe ich mich dazu veranlasst, dieses Programm zu machen. '** '** [Programmfunktion] '** '** Pagling -Betrieb für große Datenbanken, das ideale Betriebsdatensatzvolumen beträgt 2 Millionen ‘** (MAX Level Edition wird unzählige Mengen einschränken, und egal wie groß die Datenbank ist, die Seite Drehgeschwindigkeit ist '** unverändert), dies ist das Paging -Programm der Million Level -Version in Saiyang 1G, Speicher 512, Win2k Ring '** Testdaten im Bereich: '** '** SQLSERVER 2K 100.000 Aufzeichnungen zeigen 20 Teile pro Seite: '** Durchschnittliche Seite Drehgeschwindigkeit: 45 ms '** SQLSERVER 2K 1 Million Datensätze Zeigen Sie 20 Teile pro Seite an: '** Durchschnittliche Seite Drehgeschwindigkeit: 350 ms '** '** '** [Pagling -Prinzip] '** '** Dieses Programm verwendet nicht mehr die Rs.PageSize -Methode zu Seiten, und der Cursortyp, der die Datenbank verbindet '** verwendet Conn, 1, x, sondern Conn, 0,1, was der schnellste Cursortyp sein sollte, nicht '** Der Meinung, dass das Programm im Gegenteil kompliziert wird, ist das Programm sehr einfach. '** Es sollte mein Programmierstil sein. Das Zentrum der Paging von '** "Infinite Stream" ist: Lesen Sie nur die Datensätze, die pro Seite angezeigt werden müssen, nicht mehr wie Tradition '** Pagling-Programm liest alle Daten vor dem Lesen, was der größte Vorteil dieser Programme für weniger Ressourcen ist, dasselbe '** rationale Geschwindigkeit wurde ebenfalls erheblich verbessert, insbesondere wenn die Datenmenge größer ist, ihr Geschwindigkeitsvorteil '** offensichtlicher (nur etwa 350 ms). '** Wenn das Programm ausgeführt wird '** Datensatz und den ID -Wert des letzten Datensatzes als Marke der nächsten Seite und dann verwenden '** Die erforderlichen Daten zeigen es und erfassen dann den ID -Wert. '** '** [Abschluss] '** '** Dieses Programm handelt '** Ändere oder für andere Zwecke verwendet werden, respektiere bitte die harte Arbeit des Autors und geben Sie die Quelle an. '** Wenn in diesem Programm Nachteile wie Fehler und Optimierung vorhanden sind, wechseln Sie bitte die Webentwicklung von www.csdn.net/ '** ASP -Kolumne hat eine Diskussion für die Entwicklung der chinesischen Softwareindustrie veröffentlicht, bitte steh nicht alleine :) '** '****************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************,* Option explizit 'Response.flush Dim Begintime, Endzeit BeginTime = Timer Dim Conn, Sqlstr, RS, Defrecordnum, CursorBegin, Cursorend, Curpagenum, HAV, HAV Defrecordnum = 20 '-------------- Erhalten Sie relevante Parameter -------------------------------- --------------------- Wenn request ("CursorBegin") = "dann CursorBegin = 0 sonst CursorBegin = Request (" CursorBegin ")) Wenn Request ("Cursorend") = "Der Cursorend = 0 sonst Cursorend = Request (" Cursorend ") Wenn Anfrage ("Curpagenum") <> "dann Curpagenum = clng (request ("curpagenum") Ifurpagenum <= 0 dann Capagenum = 1 Anders Curpagenum = 1 Ende wenn Hav = request ("hav") Wenn hav = "" dann hav = "Weiter" '------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- '------------ 显示翻页内容函数 -------- Funktionsumschlüsse (Unwirksam) Dim n Während nicht (rs.eof) und n <Respecordnum n = n 1 Response.write "<ter>" & _ "<td bgcolor = 'efefef'>" & rs (0) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (1) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (2) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (3) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (4) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (5) & "</td>" & _ "</tr>" "" Wenn n = 1 der CursorBegin = Rs (0) Wenn n = Defrecordnum oder rs.eof dann Cursorend = Rs (0) Rs.Movenext Wend Endfunktion '------------------------------------------------- ------------------------ Setzen Sie conn = server.createObject ("adodb.Connection"). 'Sqlstr = "Provider = microsoft.jet.oledb.4.0; data source =" & server.mappath ("mlodata.mdb")) SQLSTR = "TRAVER = {SQL Server}; Server = Arbiter; UID = Arbiter; PWD = 123456; Database = mldata" "" " Conn.open Sqlstr '--------- Statistiken Gesamtdatensätze/Gesamtseiten --------------------------- '-PS: Empfohlene Zählung (ID), ID ist automatische Nummer und Index, ansonsten kann die Geschwindigkeit erheblich reduziert werden '-PS: Diese Statistik ist Teil der am meisten verbrauchten Ressourcen in diesem Programm. Dim TotalRCords, Gesamtpages SQLSTR = "Wählen Sie Count (ID) als Recornsum von ABC" aus " Setzen Sie rs = const.execute (SQLStr, 0,1) TotalRecords = RS ("Recordsum") TotalPages = ABS (int (TotalRecords/Defrecordnum*(-1))) Rs.close Setzen Sie Rs = nichts '-------- Wählen Sie die entsprechenden SQL-Zeichenfolgen basierend auf HAV ------ Wählen Sie Fall (hav) Fall "zurück" Cursorend = CursorBegin Sqlstr = "Top" & DefaleCordnum & "_ ID, Titel, Dateiname, K, imgsize, namson _ Von ABC wobei ID <"& CursorBegin & _ "Und id in (Select Top" & Defrecordnum_ & "ID von ABC wobei ID <" & cursorBegin_ & "Bestellung durch ID des Desc) bestellen nach id" Fall "Weiter" Sqlstr = "Top" & Defrecordnum_ & "ID, Titel, Dateiname, K, IMGSIZE, NAMESON von ABC wobei ID>" & Cursorend & _ "Bestellung durch ID" Ende auswählen Setzen Sie rs = const.execute (SQLStr, 0,1) %>
|