用存儲(chǔ)過程、GetRows()、抽取10萬條數(shù)據(jù)的速度測(cè)試
通過正常提取:
<%
Set conn= Server.CreateObject("ADODB.Connection")
c&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
%>
http://www.cnbruce.com/test/getrows/show1.asp
耗時(shí)3,250.000毫秒,總測(cè)試平均值在3秒左右
==========================================================
使用存儲(chǔ)過程提取:
<%
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
%>
http://www.cnbruce.com/test/getrows/show2.asp
耗時(shí)2,187.500毫秒,總測(cè)試平均值在2秒左右
=========================================================
以上兩種均不能徹底解決執(zhí)行時(shí)間漫長(zhǎng)的問題,主要原因即是循環(huán)每次都須向數(shù)據(jù)庫抽取記錄(Command速度相對(duì)較快)
那么使用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
%>
http://www.cnbruce.com/test/getrows/show3.asp
耗時(shí)187.500毫秒,總測(cè)試平均值在0.2秒左右
GetRows()方法是將數(shù)據(jù)從 Recordset 復(fù)制到二維數(shù)組中,這是一個(gè)二維數(shù)組,第一個(gè)下標(biāo)標(biāo)識(shí)字段,第二個(gè)則標(biāo)識(shí)記錄號(hào)
所以rsArray = rs.GetRows()
rsArray(0, 0)就表示記錄集第一行的第一字段值
rsArray(1, 0)就表示記錄集第一行的第二字段值
數(shù)組的數(shù)據(jù)是保存在內(nèi)存中的,這就從根本上解決了每次顯示記錄還需向數(shù)據(jù)庫請(qǐng)求的麻煩。
相關(guān)文章
UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉(zhuǎn)換程序
UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉(zhuǎn)換程序...2007-02-02asp實(shí)現(xiàn)excel中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫
本文給大家匯總介紹了使用asp實(shí)現(xiàn)將Excel中數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中的方法,需要的朋友可以參考一下2015-09-09ASP 空字符串、IsNull、IsEmpty區(qū)別分析
本文將詳細(xì)介紹ASP中空字符串、IsNull、IsEmpty之間的區(qū)別,有需要的朋友可以參考下2012-12-12動(dòng)網(wǎng)防惡意廣告比較有效的辦法附asp代碼
動(dòng)網(wǎng)防惡意廣告比較有效的辦法附asp代碼...2007-05-05Coolite 中前臺(tái)獲取 GridPanel 當(dāng)前選擇行值的代碼
掌握獲取 GridPanel 當(dāng)前行的各個(gè)字段值的方法,需要的朋友可以參考下。2010-06-06asp實(shí)現(xiàn)的sha1加密解密代碼(和C#兼容)
這篇文章主要介紹了asp實(shí)現(xiàn)的sha1加密解密代碼,可以和ASP.NET(C#)相互兼容,需要的朋友可以參考下2014-08-08一個(gè)能對(duì)訪問者進(jìn)行編號(hào)、記錄訪問次數(shù)、IP、時(shí)間的統(tǒng)計(jì)制作實(shí)例
一個(gè)能對(duì)訪問者進(jìn)行編號(hào)、記錄訪問次數(shù)、IP、時(shí)間的統(tǒng)計(jì)制作實(shí)例...2006-12-12asp對(duì)復(fù)雜json的解析一定要注意要點(diǎn)
網(wǎng)上有很多類似的文章但只解析出第一層,后面的死活試了大半天才測(cè)試出來,下面貼上我的代碼,解釋一下,也算對(duì)我做的東西留個(gè)備份2014-06-06ASP,vbs正則輪翻在文章段落后加上網(wǎng)址等內(nèi)容
ASP,vbs正則輪翻在文章段落后加上網(wǎng)址,網(wǎng)站名稱,網(wǎng)站介紹等內(nèi)容2008-06-06