asp 性能测试报告 学习asp朋友需要了解的东西(6)
来源:asp之家 发布时间:2011-03-09 10:57:00
第6个规则如下:
l除非确实要求记录集本地化,否则应避免使用。
十、用哪种方法引用记录集字段值效率最高?
10.1 测试
至此为止我们一直通过名字引用记录集中的字段值。由于这种方法要求每次都必须寻找相应的字段,它的效率并不高。为证明这一点,下面这个测试中我们通过字段在集合中的索引引用它的值(ADO__08.asp):
代码如下:
'write data
Do While Not objRS.EOF
Response.Write( _
"<TR>" & _
"<TD>" & objRS(0) & "</TD>" & _
"<TD>" & objRS(1) & "</TD>" & _
"<TD>" & objRS(2) & "</TD>" & _
"<TD>" & objRS(3) & "</TD>" & _
"<TD>" & objRS(4) & "</TD>" & _
"<TD>" & objRS(5) & "</TD>" & _
"<TD>" & objRS(6) & "</TD>" & _
"</TR> " _
)
objRS.MoveNext
Loop
和预期的一样,页面开销也有小小的变化(这或许是因为代码略有减少)。然而,这种方法在显示时间上的改善是相当明显的。
在下一个测试中,我们把所有的字段分别绑定到变量(ADO__09.asp):
代码如下:
If objRS.EOF Then
Response.Write("No Records Found")
Else
'write headings
...
Dim fld0
Dim fld1
Dim fld2
Dim fld3
Dim fld4
Dim fld5
Dim fld6
Set fld0 = objRS(0)
Set fld1 = objRS(1)
Set fld2 = objRS(2)
Set fld3 = objRS(3)
Set fld4 = objRS(4)
Set fld5 = objRS(5)
Set fld6 = objRS(6)
'write data
Do While Not objRS.EOF
Response.Write( _
"<TR>" & _
"<TD>" & fld0 & "</TD>" & _
"<TD>" & fld1 & "</TD>" & _
"<TD>" & fld2 & "</TD>" & _
"<TD>" & fld3 & "</TD>" & _
"<TD>" & fld4 & "</TD>" & _
"<TD>" & fld5 & "</TD>" & _
"<TD>" & fld6 & "</TD>" & _
"</TR>" _
)
objRS.MoveNext
Loop
Set fld0 = Nothing
Set fld1 = Nothing
Set fld2 = Nothing
Set fld3 = Nothing
Set fld4 = Nothing
Set fld5 = Nothing
Set fld6 = Nothing
Response.Write("</TABLE>")
End If
这是目前为止最好的记录。请注意单个记录的显示时间已经降低到0.45毫秒以下。
上述脚本都要求对结果记录集的构造有所了解。例如,我们在列标题中直接使用了字段名字,单独地引用各个字段值。下面这个测试中,不仅字段数据通过遍历字段集合得到,而且字段标题也用同样的方式得到,这是一种更为动态的方案(ADO__10.asp)。
代码如下:
If objRS.EOF Then
Response.Write("No Records Found")
Else
'write headings Response.Write("<TABLE BORDER=1><TR>")
For Each objFld in objRS.Fields
Response.Write("<TH>" & objFld.name & "</TH>")
Next
Response.Write("</TR>")
'write data
Do While Not objRS.EOF
Response.Write("<TR>")
For Each objFld in objRS.Fields
? Response.Write("<TD>" & objFld.value & "</TD>")
Next
Response.Write("</TR>")
objRS.MoveNext
Loop
Response.Write("</TABLE>")
End If
可以看到,代码性能有所下降,但它仍旧要比ADO__07.asp要快。


猜你喜欢
- 这两个方法都可以用来在固定的时间段后去执行一段javascirpt代码,不过两者各有各的应用场景。实际上,setTimeout和setInt
- 本文实例讲述了php+jQuery实现的 * 导航栏下拉菜单显示效果。分享给大家供大家参考,具体如下:首先看看效果图:1.数据配置文件 db.
- Analyze Table MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的card
- 目录获取二维码部分获取关注状态值解析微信服务器报文大致思路:调用微信带参数二维码接口生成二维码,前端显示二维码同时于服务器进行长链接通信,监
- mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库
- 本文实例为大家分享了python tkinter库实现气泡屏保和锁屏的具体代码,供大家参考,具体内容如下显示效果如下:代码: im
- 有的时候取出全部数据库记录也许正好满足你的要求,不过,在大多数情况下我们通常只需得到部分记录。这样一来该如何设计查询呢?当然会更费点脑筋了,
- 前言本文给大家深入的解答了关于Python的11道基本面试题,通过这些面试题大家能对python进一步的了解和学习,下面话不多说,来看看详细
- 等了好久的小程序,终于在近日曝光了。现在就带大家来尝尝鲜。以下是一张随便看看的图。一、构建微信小程序的步骤下载开发工具考虑到微信0.9.09
- 前言在做数据恢复时,偶尔会碰到需要对数据文件位置调整的案例,在这种情况下,可以在RMAN中使用SET NEWNAME命令。在Oracle 1
- 简单使用csv.DictReader()方法示例代码1:import csvf = open('sample','r
- 问题:根据数据某列进行分组,选择其中另一列大小top-K的的所在行数据解析:求解思路很清晰,即先用groupby对数据进行分组,然后再根据分
- 本文实例讲述了Python基于Socket实现的简单聊天程序。分享给大家供大家参考,具体如下:需求:SCIENCE 和MOOD两个人软件专业
- 秦歌这篇文章总结得很不错,俺挑刺来啦:1. 优先级的描述不严谨,有 !important 时,网页样式可以覆盖用户自定义样式。用户!impo
- 有两个服务器,装了两个数据库,一个是主的,一个是备用的,下面的的功能就将主数据库的数据库,实时同步到备份数据库上,使他们的数据内容,基本上保
- 由于新版站长资讯即将发布,我每天都在想如何防止采集,目前想到的几种办法:1、多做几个列表和内容模板,随机使用,对目前大多数cms来说,这种方
- 大家在用django写完模型代码后,肯定都迫不及待的将模型翻译为迁移文件然后migrate吧,后来发现以后模型要修改的话再python ma
- 这样的一段删除空字符串的代码:def not_empty(s): return s and s.strip()print(lis
- 1.变量的输入:input函数:input()input("请输入银行卡密码")password = input(&qu
- 最后罗嗦一句,本人录入这篇文章用的机器上没有 ASP 环境,所以提供的代码未能进行测试,对这一点本人深表歉意。如果大家发现了代码中的任何问题