<%
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'现有10W条数据,Access数据库保存
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db2.mdb")
conn.Open connstr
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from people order by id desc"
rs.Open sql,conn,1,1
Do While Not rs.EOF
Response.write rs("id")&" | "
rs.MoveNext
Loop
'---------------------------------------------------------------------
'---------------------------------------------------------------------
%>
<!--耗时3,250.000毫秒,总测试平均值在3秒左右 -->
<%
'使用存储过程提取:
'---------------------------------------------------------------------
'---------------------------------------------------------------------
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")
cmd.ActiveConnection = conn
cmd.CommandText = "Select * from people order by id desc"
Set rs = cmd.Execute
Do While Not rs.EOF
Response.write rs("id")&" | "
rs.MoveNext
Loop
'---------------------------------------------------------------------
'---------------------------------------------------------------------
%>
<!--耗时2,187.500毫秒,总测试平均值在2秒左右 -->
<%
'以上两种均不能彻底解决执行时间漫长的问题,主要原因即是循环每次都须向数据库抽取记录(Command速度相对较快)
'那么使用GetRows()方法呢:
'---------------------------------------------------------------------
'---------------------------------------------------------------------
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")
cmd.ActiveConnection = conn
cmd.CommandText = "Select * from people order by id desc"
Set rs = cmd.Execute
rsArray = rs.GetRows()
For i = 0 To UBound(rsArray, 2)
Response.Write rsArray(0, i)&" | "
Next
'---------------------------------------------------------------------
'---------------------------------------------------------------------
%>
<!--耗时187.500毫秒,总测试平均值在0.2秒左右
每页显示多少条!就只取多少条!如果以前的是整个记录集打开,那是多少惊人的浪费
rs.getrows()符合条件全部取出!为二维表
rs.getrows(10)
就是只取10条
rs.getrows(-1)与放空都是全取!
-->