10W قطع من البيانات المتاحة ، يتم حفظ قاعدة بيانات الوصول
عن طريق الاستخراج الطبيعي:
نسخة الكود كما يلي:
<٪
setConn = server.createObject ("adodb.connection")
c & server.mappath ("db2.mdb")
Conn.Openconnstr
setRs = server.createObject ("adodb.recordset")
SQL = "SELECT*frompeopleorderbyiddesc"
Rs.Opensql ، Conn ، 1،1
dowhilenotrs.eof
Response.writers ("id") و "|"
Rs.Movenext
حلقة
٪>
http://www.cnbruce.com/test/getrows/show1.asp
يستغرق 3،250.000 ميلي ثانية ، ويبلغ متوسط قيمة الاختبار الإجمالية حوالي 3 ثوان.
=========================================================================
استخدم الإجراء المخزن لاستخراج:
نسخة الكود كما يلي:
<٪
setConn = server.createObject ("adodb.connection")
setcmd = server.createBject ("adodb.command")
conn.open "Provider = microsoft.jet.oledb.4.0 ؛ datasource =" & server.mappath ("db2.mdb")
cmd.activeconnection = conn
cmd.CommandText = "SELECT*frompeopleorderbyiddesc"
setRs = cmd.execute
dowhilenotrs.eof
Response.writers ("id") و "|"
Rs.Movenext
حلقة
٪>
http://www.cnbruce.com/test/getrows/show2.asp
استغرق الأمر 2،187.500 مللي ثانية ، وكان متوسط قيمة الاختبار الإجمالي حوالي 2 ثانية.
=========================================================================
لا يمكن للثنين أعلاه حل مشكلة وقت التنفيذ الطويل تمامًا. السبب الرئيسي هو أن الحلقة يجب أن تستخرج السجلات من قاعدة البيانات في كل مرة (سرعة الأوامر سريعة نسبيًا)
ثم ماذا عن استخدام طريقة getrows ():
نسخة الكود كما يلي:
<٪
setConn = server.createObject ("adodb.connection")
setcmd = server.createBject ("adodb.command")
conn.open "Provider = microsoft.jet.oledb.4.0 ؛ datasource =" & server.mappath ("db2.mdb")
cmd.activeconnection = conn
cmd.CommandText = "SELECT*frompeopleorderbyiddesc"
setRs = cmd.execute
rsarray = rs.getrows ()
fori = 0toubound (rsarray ، 2)
repart.writersarray (0 ، i) و "|"
التالي
٪>
http://www.cnbruce.com/test/getrows/show3.asp
استغرق الأمر 187.500 مللي ثانية ، ويبلغ متوسط الاختبار الإجمالي حوالي 0.2 ثانية.
طريقة getRows () هي نسخ البيانات من مجموعة السجل إلى صفيف ثنائي الأبعاد. هذا صفيف ثنائي الأبعاد. يمثل المرتبة الأولى الحقل والثاني يصادف رقم السجل.
حتى rsarray = rs.getrows ()