Berikut ini adalah fragmen kode: '*********************************************** ********************************************** ********************************************** ********************************************** ********************************************** **************, ******************** '** Nama program ini: Program Paging "Infinite Stream" '** Penulis: Arbiter (AASX) '** Versi: Level Juta '** '** qq: 22222xx '** Email: [email protected] '** http://www.images.org/ '*********************************************** ********************************************** ********************************************** ********************************************** ********************************************** **************, ******************** '** '** [kata penulis] '** '** Program paging tidak diragukan lagi merupakan hal yang lebih merepotkan di antara banyak fungsi program jaringan '** Kebanyakan orang masih menggunakan metode paging tradisional (rs.pagesize = xx) untuk memahami '** Operasi basis data tahu bahwa metode tradisional ini memiliki kelemahan: ketika halaman dibuka untuk pertama kalinya, '** Ini akan membaca semua set catatan. '** Halaman juga akan sangat lambat, sumber daya menempati. Untuk data lebih dari 100.000 atau lebih '** Perpustakaan Metode paging tradisional ini menjadi sangat lemah, apalagi satu juta level (saya tidak bisa bercinta sama sekali '** Mengerjakan). Untuk alasan ini, saya telah mendorong saya untuk melakukan program ini. '** '** [Fungsi Program] '** '** Operasi pagling untuk database besar, volume catatan data operasi yang ideal adalah 2 juta ‘** (edisi level maks akan membatasi jumlah yang tak terhitung jumlahnya, dan tidak peduli seberapa besar basis data, kecepatan belok halaman '** tidak berubah), ini adalah program paging versi level jutaan di Saiyang 1G, memori 512, cincin win2k '** Data uji di ranah: '** '** SQLServer 2K 100.000 Catatan menunjukkan 20 buah per halaman: '** Kecepatan belok halaman rata -rata: 45ms '** SQLServer 2K 1 Juta Catatan Menampilkan 20 buah per halaman: '** Rata -rata Kecepatan Putar Halaman: 350ms '** '** '** [Prinsip Pagling] '** '** Program ini tidak lagi menggunakan metode Rs.Pagesisasi ke halaman, dan jenis kursor yang menghubungkan database '** tidak menggunakan conn, 1, x, tetapi conn, 0,1, yang seharusnya menjadi tipe kursor tercepat, jangan '** berpikir bahwa ini akan membuat program ini rumit. '** Ini harus menjadi gaya pemrograman saya. Pusat paging '** "Infinite Stream" adalah: Baca hanya catatan yang perlu ditampilkan per halaman, tidak lagi seperti tradisi '** Program Pagling membaca semua data yang sudah dibaca sebelumnya, yang merupakan keuntungan terbesar dari program ini-yang lebih sedikit sumber daya, hal yang sama '** Kecepatan rasional juga telah sangat ditingkatkan, terutama ketika jumlah data lebih besar, keunggulan kecepatannya '** lebih jelas (hanya sekitar 350 ms). '** Saat program dieksekusi, catatan pertama yang ditampilkan oleh Curcorbegin dan Curcorend '** Rekaman dan nilai ID dari catatan terakhir, sebagai tanda halaman berikutnya, dan kemudian gunakan XX Top untuk mengambil '** Data yang diperlukan menunjukkannya, dan kemudian mencatat nilai ID. '** '** [Kesimpulan] '** '** Program ini adalah versi bersama, disediakan untuk berbagai pecinta program untuk dipelajari dan digunakan, untuk mencetak ulang, menyebar, memperbaiki '** Ubah atau digunakan untuk tujuan lain, harap hormati kerja keras penulis dan tunjukkan sumbernya. '** Jika ada kelemahan seperti kesalahan dan optimasi dalam program ini, silakan pergi ke pengembangan web www.csdn.net/ '** Kolom ASP mengeluarkan diskusi, untuk pengembangan industri perangkat lunak China, tolong jangan berdiri sendiri :) '** '*********************************************** ********************************************** ********************************************** ********************************************** ********************************************** **************, ******************** Opsi eksplisit 'Response.Flush Redup beginime, endtime BeginTime = timer Redup conn, sqlstr, rs, defrecordnum, cursorbegin, cursorend, curpagenum, hav, hav DEFRECORDNUM = 20 '-------------- Dapatkan parameter yang relevan -------------------------------- --------------------- Jika permintaan ("Cursorbegin") = "Lalu kursorbegin = 0 else cursorbegin = request (" Cursorbegin "))) Jika permintaan ("Cursorend") = "The Cursorend = 0 Lain Cursorend = Request (" Cursorend ") Jika permintaan ("curpagenum") <> "lalu Curpagenum = clng (permintaan ("curpagenum") Ifurpagenum <= 0 lalu capagenum = 1 Kalau tidak Curpagenum = 1 Akhiri jika Hav = request ("hav") Jika hav = "" maka hav = "Next" '------------------------------------------------- -------------------------------------------------- --------------------------------- '------------ 显示翻页内容函数 -------- Fungsi turnpagefs (disprecordnum) Redup n Sedangkan tidak (rs.eof) dan n <disprecordnum 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>" "" Jika n = 1 Cursorbegin = Rs (0) Jika n = defrecordnum atau rs.eof maka kursorend = rs (0) Rs.movenext Pergi ke Fungsi akhir '------------------------------------------------- ------------------------ Set Conn = Server.CreateObject ("AdodB.Connection") 'Sqlstr = "provider = microsoft.jet.oledb.4.0; data sumber =" & server.mappath ("mlodata.mdb"))) Sqlstr = "driver = {sql server}; server = arbiter; uid = arbiter; pwd = 123456; basis data = mldata" "" " Conn.open sqlstr '--------- Statistik Total Catatan/Total Halaman ------------------------------- '-PS: Hitungan yang Disarankan (ID), ID adalah nomor otomatis dan indeks, jika tidak kecepatannya dapat sangat didiskon '-PS: Statistik ini adalah bagian dari sumber daya yang paling dikonsumsi dalam program ini. Redup total, totalpages Sqlstr = "pilih count (id) sebagai rekornsum dari ABC" Set RS = Const.Execute (SQLSTR, 0,1) TotalRecords = RS ("Recordsum") TotalPages = ABS (int (TotalRecords/DefrecordNum*(-1))) Rs.close Setel RS = Tidak Ada '-------- Pilih string SQL yang sesuai berdasarkan HAV ------ Pilih Kasus (Hav) Kasus "kembali" Cursorend = Cursorbegin Sqlstr = "pilih atas" & defalecordnum & "_ ID, judul, nama file, k, imgsize, nameson _ Dari ABC Where Id <"& Cursorbegin & _ "Dan id in (pilih atas" & defrecordnum_ & "ID dari ABC Where Id <" & Cursorbegin_ & "Pesan dengan ID Desc) Pesan dengan ID" Kasus "berikutnya" Sqlstr = "pilih atas" & defrecordnum_ & "Id, judul, nama file, k, imgsize, nameson dari ABC Where Id>" & Cursorend & _ "Pesan dengan ID" Akhiri Pilih Set RS = Const.Execute (SQLSTR, 0,1) %>
|