ต่อไปนี้เป็นส่วนของรหัส: '*********************************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************, ********************** '** โปรแกรมโปรแกรมนี้: "Infinite Stream" โปรแกรมเพจ '** ผู้แต่ง: Arbiter (AASX) '** เวอร์ชัน: ระดับล้านระดับ - '** qq: 222222xx '** อีเมล: [email protected] '** http://www.images.org/ '*********************************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************, ********************** - '** [คำพูดของผู้แต่ง] - '** โปรแกรมการเพจเป็นสิ่งที่ยากลำบากมากขึ้นในฟังก์ชั่นโปรแกรมเครือข่ายมากมายในความเป็นจริงตอนนี้ '** คนส่วนใหญ่ยังคงใช้วิธีการเพจแบบดั้งเดิม (rs.pagesize = xx) เพื่อทำความเข้าใจ '** การดำเนินการฐานข้อมูลรู้ว่าวิธีดั้งเดิมนี้มีข้อเสีย: เมื่อหน้าเปิดเป็นครั้งแรก '** มันจะอ่านชุดบันทึกทั้งหมด '** หน้าจะช้ามากและครอบครองทรัพยากร สำหรับข้อมูลมากกว่า 100,000 หรือมากกว่า '** ห้องสมุดวิธีการเพจแบบดั้งเดิมนี้อ่อนแอมากนับล้านระดับ (ฉันไม่สามารถมีเพศสัมพันธ์ได้เลย '** ทำ). ด้วยเหตุนี้ฉันจึงแจ้งให้ฉันทำโปรแกรมนี้ - '** [ฟังก์ชั่นโปรแกรม] - '** การดำเนินการ pagling สำหรับฐานข้อมูลขนาดใหญ่ปริมาณการบันทึกข้อมูลการทำงานในอุดมคติคือ 2 ล้าน ‘** (รุ่นระดับสูงสุดจะ จำกัด ปริมาณที่นับไม่ถ้วนและไม่ว่าฐานข้อมูลจะมีขนาดใหญ่เพียงใด '** ไม่เปลี่ยนแปลง) นี่คือโปรแกรมเพจของรุ่นล้านใน Saiyang 1G, หน่วยความจำ 512, Win2K Ring '** ข้อมูลทดสอบในอาณาจักร: - '** SQLSERVER 2K 100,000 บันทึกแสดง 20 ชิ้นต่อหน้า: '** ความเร็วในการเปลี่ยนหน้าเฉลี่ย: 45ms '** SQLServer 2K 1 ล้านบันทึกแสดง 20 ชิ้นต่อหน้า: '** ความเร็วการเปลี่ยนหน้าเฉลี่ย: 350ms - - '** [หลักการ pagling] - '** โปรแกรมนี้ไม่ได้ใช้วิธี Rs.Pagesize ไปยังหน้าเว็บอีกต่อไปและประเภทเคอร์เซอร์ที่เชื่อมต่อฐานข้อมูล '** ไม่ได้ใช้ conn, 1, x, แต่ conn, 0,1 ซึ่งควรเป็นเคอร์เซอร์ที่เร็วที่สุดอย่า '** คิดว่าสิ่งนี้จะทำให้โปรแกรมมีความซับซ้อน '** มันควรจะเป็นสไตล์การเขียนโปรแกรมของฉัน ศูนย์กลางของการเพจแห่ง '** "Infinite Stream" คือ: อ่านเฉพาะระเบียนที่ต้องแสดงต่อหน้าไม่เหมือนประเพณีอีกต่อไป '** โปรแกรม pagling อ่านข้อมูลล่วงหน้าทั้งหมดซึ่งเป็นข้อได้เปรียบที่ใหญ่ที่สุดของทรัพยากรที่มีการรับผิดชอบน้อยที่สุดของโปรแกรมนี้เหมือนกัน '** ความเร็วที่มีเหตุผลได้รับการปรับปรุงอย่างมากโดยเฉพาะอย่างยิ่งเมื่อปริมาณข้อมูลเพิ่มขึ้นความได้เปรียบความเร็วของมัน '** ชัดเจนมากขึ้น (ประมาณ 350ms) '** เมื่อมีการดำเนินการโปรแกรมบันทึกแรกที่แสดงโดย Curcorbegin และ Curcorend '** บันทึกและค่า id ของระเบียนสุดท้ายเป็นเครื่องหมายของหน้าถัดไปจากนั้นใช้ Top XX เพื่อรับ '** ข้อมูลที่ต้องการจะแสดงแล้วบันทึกค่า ID - '** [บทสรุป] - '** โปรแกรมนี้เป็นเวอร์ชันที่ใช้ร่วมกันซึ่งมอบให้กับคนรักโปรแกรมต่าง ๆ เพื่อศึกษาและใช้งานเพื่อพิมพ์ซ้ำแพร่กระจายซ่อมแซม '** เปลี่ยนหรือใช้เพื่อวัตถุประสงค์อื่นโปรดเคารพการทำงานหนักของผู้เขียนและระบุแหล่งที่มา '** หากมีข้อเสียเช่นข้อผิดพลาดและการเพิ่มประสิทธิภาพในโปรแกรมนี้โปรดไปที่การพัฒนาเว็บของ www.csdn.net/ '** คอลัมน์ ASP ออกการอภิปรายเพื่อการพัฒนาอุตสาหกรรมซอฟต์แวร์ของจีนโปรดอย่ายืนอยู่ด้วยตัวเอง :) - '*********************************************************** ******************************************************** ******************************************************** ******************************************************** ******************************************************** **************, ************************ ตัวเลือกอย่างชัดเจน 'ตอบสนองฟลัช Dim Begintime, endtime Begintime = Timer Dim Conn, SQLSTR, RS, DefRecordnum, Cursorbegin, Cursorend, Curpagenum, HAV, HAV defrecordnum = 20 '-------------- รับพารามิเตอร์ที่เกี่ยวข้อง ------------------------------------------------ --------------------- ถ้าคำขอ ("Cursorbegin") = "จากนั้น cursorbegin = 0 else cursorbegin = คำขอ (" cursorbegin ")))))))))))))))))))) หากคำขอ ("Cursorend") = "The Cursorend = 0 ELSE CURSOREND = คำขอ (" CurSorend ") ถ้าคำขอ ("curpagenum") <> "แล้ว curpagenum = clng (คำขอ ("curpagenum") ifurpagenum <= 0 แล้ว capagenum = 1 อื่น Curpagenum = 1 สิ้นสุดถ้า hav = คำขอ ("hav") ถ้า hav = "" แล้ว hav = "ถัดไป" - '------------ 显示翻页内容函数 -------- ฟังก์ชั่น turnpagefs (disprecordnum) สลัว n ในขณะที่ไม่ใช่ (rs.eof) และ 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>" "" ถ้า n = 1 The CursorBegin = Rs (0) ถ้า n = defrecordnum หรือ rs.eof แล้ว cursorend = rs (0) Rs.Movenext ใช้ ฟังก์ชันสิ้นสุด - ตั้งค่า conn = server.createObject ("adodb.connection")) 'sqlstr = "ผู้ให้บริการ = microsoft.jet.oledb.4.0; แหล่งข้อมูล =" & server.mappath ("mlodata.mdb" SQLSTR = "Driver = {SQL Server}; Server = Arbiter; UID = Arbiter; PWD = 123456; DATABASE = MLDATA" "" " conn.open sqlstr '--------- สถิติทั้งหมดบันทึก/หน้าทั้งหมด ------------------------------- '-PS: การนับที่แนะนำ (ID), ID เป็นจำนวนอัตโนมัติและดัชนีมิฉะนั้นความเร็วอาจลดลงอย่างมาก '-PS: สถิตินี้เป็นส่วนหนึ่งของทรัพยากรที่ใช้มากที่สุดในโปรแกรมนี้ Dim Totalrcords, TotalPages SQLSTR = "SELECT COUNT (ID) เป็น RecornSum จาก ABC" ตั้งค่า rs = const.execute (sqlstr, 0,1) TotalRecords = Rs ("Recordsum") TotalPages = abs (int (totalRecords/defrecordnum*(-1))) Rs.close ตั้งค่า rs = ไม่มีอะไร '-------- เลือกสตริง SQL ที่สอดคล้องกันตาม HAV ------- เลือกกรณี (HAV) กรณี "กลับ" Cursorend = Cursorbegin sqlstr = "เลือก top" & defalecordnum & "_ _ ID, ชื่อเรื่อง, ชื่อไฟล์, k, imgsize, nameson _ จาก ABC โดยที่ ID <"& Cursorbegin & _ "และ id ใน (เลือก top" & defrecordnum_ & "ID จาก ABC โดยที่ id <" & cursorbegin_ & "สั่งซื้อตาม ID DESC) สั่งซื้อตาม ID" กรณี "ถัดไป" sqlstr = "เลือก top" & defrecordnum_ & "id, ชื่อเรื่อง, ชื่อไฟล์, k, imgsize, nameson จาก abc ที่ id>" & cursorend & _ "สั่งซื้อตามรหัส" สิ้นสุดเลือก ตั้งค่า rs = const.execute (sqlstr, 0,1) -
|