มีข้อมูล 10W ชิ้นส่วนฐานข้อมูลการเข้าถึงจะถูกบันทึกไว้
โดยการสกัดปกติ:
การคัดลอกรหัสมีดังนี้:
-
setConn = server.createObject ("adodb.connection"))
c & server.mappath ("db2.mdb"))
conn.openconnstr
setRs = server.createObject ("adodb.recordset"))
sql = "เลือก*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.createObject ("adodb.command"))
conn.open "ผู้ให้บริการ = 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.createObject ("adodb.command"))
conn.open "ผู้ให้บริการ = 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)
Response.writersarray (0, i) & "|"
ต่อไป
-
http://www.cnbruce.com/test/getrows/show3.asp
ใช้เวลา 187.500 มิลลิวินาทีและค่าเฉลี่ยการทดสอบทั้งหมดประมาณ 0.2 วินาที
วิธีการ getrows () คือการคัดลอกข้อมูลจากชุดบันทึกลงในอาร์เรย์สองมิติ นี่คืออาร์เรย์สองมิติ ตัวห้อยแรกทำเครื่องหมายฟิลด์และหมายเลขที่สองทำเครื่องหมายหมายเลขบันทึก
ดังนั้น rsarray = rs.getrows ()