asp 性能测试报告 学习asp朋友需要了解的东西(9)


复制代码 代码如下:

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation = 2' adUseClient
objRS.ActiveConnection = Application("Conn")
objRS.LockType = 1?' adLockReadOnly
objRS.Open Application("SQL")
objRS.ActiveConnection = Nothing

   理论上,这种方法由于以下两个原因会对效率有所好处:第一,它避免了在记录之间移动时重复地通过连接请求数据;第二,由于能够方便地释放连接,它减轻了资源需求。然而,从上表看起来使用本地记录集对提高效率显然没有什么帮助。这或许是因为使用本地记录集时,不管程序设置的是什么,游标总是变成静态类型。

   第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>" & _

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2182.html