≮崩溃≯不劳阁,俺的blog纯粹属于好玩,如有雷同 纯属巧合!
2 Apr

无意在网上看了篇文章,列举了列出10w条数据采取了3种方式:一般方式,存储过程,getrows,其中一般方式是3秒,存储过程是2秒,而getrows仅需0.2秒
抱着好奇的心态也来做了个测试!
第ⅰ种输出方式do while:
set rs=conn.execute(sql)
do while not rs.eof
tvalue=tvalue&rs(0)&" "
rs.movenext
loop
response.write tvalue
第ⅱ种输出方式getrows:
set cmd = server.createobject("adodb.command")
cmd.activeconnection = conn
cmd.commandtype=1
cmd.commandtext = sql
set medalrs = cmd.execute
values = medalrs.getrows
for recindex = 0 to ubound(values, 2)
tvalue=tvalue&values(0, recindex)&" "
next
response.write tvalue
a组:调用8w最新username
直接定义sql,ⅰ输出时间分别是:
30.07422
30.61328
28.72266
29.48047
29.80859
存储过程,ⅰ输出时间分别是:
28.83594
28.57813
29.625
29.95313
28.53906
直接定义sql,ⅱ输出时间分别是:
28.26953
28.32422
31.61719
28.47656
28.18359
存储过程,ⅱ输出时间分别是:
28.14453
28.12891
28.07031
28.55078
28.14063
看上去所耗时间相差不大!!在来看看b组测试数据。getrows也没有传说中的提高10倍速度 - -||
b组:调用2k最新的username
直接定义sql,ⅰ输出时间分别是:
.03125
2.734375e-02
存储过程,ⅰ输出时间分别是:
.03125
3.515625e-02
直接定义sql,ⅱ输出时间分别是:
.0234375
1.953125e-02
存储过程,ⅱ输出时间分别是:
.0234375
1.953125e-02
这个2k的貌似没有差别!难道速度太快??而且略微显示出getrows一点点速度,不过貌似可以完全忽略不计!! - -||
c组:调用从中间抽取2kid的username
直接定义sql,ⅰ输出时间分别是:
.0234375
2.734375e-02
存储过程,ⅰ输出时 间分别是:
.0234375
2.734375e-02
直接定义sql,ⅱ输出时间分别是:
.015625
1.953125e-02
存储过程,ⅱ输出时间分别是:
.015625
1.953125e-02
这个和上面的雷同,貌似也没明显区别!!
综上所诉,没有感觉getrows显示速度快到10倍;更纠结的是存储过程也没有明显的优势??难道是我方式错误!
欢迎留言纠正错误!!!
路过`````````赞个````````````走人```````````
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。