posts - 39,  comments - 13,  trackbacks - 0
作者BLOG:
http://blog.csdn.net/btbtd/

废话少说, 至目前为止, 我觉得最快的显示数据查询语句:
<% 
         start=timer() 
    set rs=server.CreateObject("adodb.recordset") 
        with rs 
        .open "select top 50000 * from ctglossary",conn 
            set gname=rs("gname"):set subgname=rs("subgname") 
                do until .eof 
                    response.write gname 
                    response.write subgname 
                    response.write "<br/>" 
                    .movenext 
                loop 
            set gname=nothing:set subgname=nothing 
        .close 
        end with 
    set rs=nothing 'shawl.qiu code' 
        response.write "<p/>"&formatNumber((timer()-start)*1000,3)&"毫秒" 
%> 
$cut$

以上语句执行情况为: 
10000条记录: 375.000毫秒
50000条记录: 1,500.000毫秒

注意以上语句的 name=rs("field"), 前面都加了 set.
如果不加 set, 且在循环体以外, 那样显示的数据将会是许多条重复的记录. 
---
如果循环体内使用的是 rs("filed") 而不是定义好的变量, 那样会降低效率, 至于为什么, 比如你输入 rs(0) 代替 varname 也是一样的效率, 道理就在这里.

注意循环体内没有使用拼接字符(&), 循环体外使用无关紧要.
至于为什么不使用 & 字符, 你输出十万个 response.write var(不加 &), 和输出一个 response.write var&var...&var10000 就知道. 
至于还有哪些地方不要使用 & 字符, 除了循环体以外, 重复使用的地方都不要使用 & 字符, 比如 sub, function, class.

可能会有人说 obj.getString(parameter) 显示很快, obj.getRows() 也很快.
但我测试的结果是, 这两个传说不灵. 

还有预存储可能也不错, 但由于没有需求, 这个没试过.

最后, 一个不错的思考, 难道你不考虑静态技术吗?

shawl.qiu
2006-8-12
http://blog.csdn.net/btbtd/archive/2006/08/12/1052702.aspx
0
0
(请您对文章做出评价)
« 上一篇:[收藏]整理了一些T-SQL技巧
» 下一篇:[收藏]Enterprise Library系列文章回顾与总结
posted on 2006-10-11 10:00 kittow╃天笑╃ 阅读(127) 评论(0)  编辑 收藏
<2006年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

╃生活和工作要充满激情,否则你无法体会到淋漓尽致的快乐和痛苦!╃
即使生活中没有红粉知己乱世佳人青梅竹马两小无猜高山流水西风瘦马平沙落雁...
http://www.skyhe.com
http://www.twzw.com
http://www.starfly.com.tw
http://stareading.starfly.com.tw
http://starparty.starfly.com.tw
http://class.skyhe.com
http://xsc.skyhe.com

搜索

 
 

常用链接

我参与的团队

随笔分类

随笔档案

文章分类

同学朋友

积分与排名

  • 积分 - 10062
  • 排名 - 5924

最新评论

阅读排行榜

评论排行榜