ما يلي هو جزء الرمز: '************************************************* ****************************************************** ****************************************************** ****************************************************** ****************************************************** ************** ، ************************ '** اسم البرنامج هذا: برنامج الترحيل "Infinite Stream" '** المؤلف: Arbiter (AASX) '** الإصدار: مليون مستوى '** '** QQ: 22222xx '** البريد الإلكتروني: [email protected] '** http://www.images.org/ '************************************************* ****************************************************** ****************************************************** ****************************************************** ****************************************************** ************** ، ************************ '** '** [كلمات المؤلف] '** '** برنامج الترحيل هو بلا شك شيء أكثر إثارة للقلق بين العديد من وظائف برنامج الشبكة '** لا يزال معظم الناس يستخدمون طريقة الترحيل التقليدية (rs.pagesize = xx) لفهمها "** عمليات قاعدة البيانات تعرف أن هذه الطريقة التقليدية لها عيب: عندما يتم فتح الصفحة لأول مرة ، '** سوف تقرأ جميع مجموعات السجلات. '** ستكون الصفحات بطيئة للغاية ، وتحتل الموارد. للحصول على بيانات أكثر من 100000 أو أكثر '** مكتبة أصبحت طريقة الترحيل التقليدية هذه ضعيفة للغاية ، ناهيك عن مليون مستوى (لا يمكنني اللعنة على الإطلاق '** يفعل). لهذا السبب ، دفعتني إلى القيام بهذا البرنامج. '** '** [وظيفة البرنامج] '** '** عملية ترقي لقواعد البيانات الكبيرة ، فإن سجل بيانات التشغيل المثالي هو 2 مليون ‘** (سيحدد Max Level Edition كميات لا حصر لها ، وبغض النظر عن حجم قاعدة البيانات ، فإن سرعة تحول الصفحة '** دون تغيير) ، هذا هو برنامج الترحيل لإصدار مليون مستوى في Saiyang 1G ، الذاكرة 512 ، Win2K Ring '** اختبار بيانات في العالم: '** '** SQLServer 2K 100،000 السجلات تظهر 20 قطعة لكل صفحة: '** متوسط سرعة الصفحة: 45 مللي ثانية '** sqlserver 2k 1 مليون سجل يعرض 20 قطعة لكل صفحة: '** متوسط سرعة تحول الصفحة: 350 مللي ثانية '** '** '** [مبدأ الولادة] '** '** لم يعد هذا البرنامج يستخدم طريقة rs.pagesize للصفحات ، ونوع المؤشر الذي يربط قاعدة البيانات '** لا يستخدم conn ، 1 ، x ، ولكن conn ، 0،1 ، والتي يجب أن تكون أسرع نوع المؤشر ، لا ** يعتقد أن هذا سيجعل البرنامج معقدًا. '** يجب أن يكون أسلوب البرمجة الخاص بي. مركز ترحيل "**" Infinite Stream "هو: اقرأ فقط السجلات التي تحتاج إلى عرض لكل صفحة ، لم تعد مثل التقاليد "** برنامج ترقيب يقرأ جميع البيانات قبل القراءة ، وهو أكبر ميزة لهذا الموارد الأقل شغلًا ، وهو نفسه '** تم تحسين السرعة العقلانية أيضًا بشكل كبير ، خاصةً عندما تكون كمية البيانات أكبر ، ميزة السرعة الخاصة بها '** أكثر وضوحا (حوالي 350 مللي ثانية). '** عند تنفيذ البرنامج ، فإن السجل الأول الذي يتم عرضه بواسطة curcorbegin و curcorend '** سجل وقيمة المعرف للسجل الأخير ، كعلامة الصفحة التالية ، ثم استخدم Top XX لأخذها '** تعرض البيانات المطلوبة ذلك ، ثم يسجل قيمة المعرف. '** '** [خاتمة] '** '** هذا البرنامج هو نسخة مشتركة ، يتم توفيرها لمختلف عشاق البرامج للدراسة والاستخدام ، لإعادة طباعة ، انتشار ، إصلاح '** تغيير أو استخدام لأغراض أخرى ، يرجى احترام العمل الشاق للمؤلف والإشارة إلى المصدر. '** إذا كانت هناك عيوب مثل الخطأ والتحسين في هذا البرنامج ، فيرجى الانتقال إلى تطوير الويب الخاص بـ www.csdn.net/ '** أصدر عمود ASP مناقشة ، لتطوير صناعة البرمجيات في الصين ، يرجى عدم الوقوف بمفردك :) '** '************************************************* ****************************************************** ****************************************************** ****************************************************** ****************************************************** ************** ، ************************** الخيار صريح 'استجابة باهت في وقت ، نهاية الوقت Begintime = مؤقت Dim Conn ، Sqlstr ، RS ، Defrecordnum ، Cursorbegin ، Cursorend ، Curpagenum ، Hav ، Hav defrecordnum = 20 '-------------- الحصول على المعلمات ذات الصلة --------------------------------- ------------------- إذا طلب ("cursorbegin") = "ثم cursorbegin = 0 آخر cursorbegin = request (" cursorbegin ")))) إذا طلب ("cursorend") = "المؤشر = 0 آخر مؤشر = طلب (" Cursorend ") إذا طلب ("curpagenum") <> "ثم curpagenum = clng (طلب ("curpagenum") ifurpagenum <= 0 ثم capagenum = 1 آخر curpagenum = 1 إنهاء إذا hav = request ("hav") إذا كان hav = "" ثم hav = "التالي" '------------------------------------------- ------------------------------------------------- ----------------------------- '------------ 显示翻页内容函数 --------- وظيفة turnpagefs (disprecordnum) قاتمة ن بينما لا (rs.eof) و n <disprecordnum ن = ن 1 استجابة. 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 cursorbegin = rs (0) إذا n = defrecordnum أو rs.eof ثم cursorend = rs (0) Rs.Movenext ويند وظيفة نهاية '------------------------------------------- ------------------------ تعيين conn = server.createObject ("adodb.connection") 'sqlstr = "provider = microsoft.jet.oledb.4.0 ؛ data source =" & server.mappath ("mlodata.mdb")) sqlstr = "driver = {sql server} ؛ server = arbiter ؛ uid = arbiter ؛ pwd = 123456 ؛ database = mldata" "" "" "" conn.open sqlstr '--------- إحصائيات إجمالي السجلات/إجمالي الصفحات ----------------------------- '-Ps: العد الموصى به (ID) ، المعرف هو الرقم التلقائي والفهرس ، وإلا فإن السرعة قد تكون مخفضة إلى حد كبير -Ps: هذه الإحصائيات هي جزء من الموارد الأكثر استهلاكًا في هذا البرنامج. Dim TotalRcords ، مجموع الصفحات SQLSTR = "حدد العد (معرف) كـ recornsum من ABC" تعيين rs = const.execute (sqlstr ، 0،1) TotalRecords = RS ("Recordsum") TotalPages = ABS (int (TotalRecords/defrecordnum*(-1)))) Rs.close تعيين روبية = لا شيء '-------- حدد سلاسل SQL المقابلة على أساس Hav ------- حدد الحالة (HAV) حالة "العودة" المؤشر = cursorbegin SQLSTR = "SELECT TOP" و DefalEcordnum & "_ المعرف ، العنوان ، اسم الملف ، K ، Imgsize ، Nameson _ من ABC حيث id <"& cursorbegin & _ "ومعرف في (SELECT TOP" & defrecordnum_ & "id من ABC حيث id <" & cursorbegin_ و "order by id desc) order by id" القضية "التالي" SQLSTR = "SELECT TOP" & DefRecordnum_ & "ID ، TITLE ، FILENAME ، K ، IMGSIZE ، NAMESON من ABC WHERE ID>" & Cursorend & _ "أمر بالمعرف" نهاية الاختيار تعيين rs = const.execute (sqlstr ، 0،1) ٪>
|