ASP程序性能测试报告(二)

程序|性能

三、第一次测试

   在第一次测试中,我们模拟Microsoft ASP ADO示例中可找到的典型情形提取一个记录集。在这个例子(ADO__01.asp)中,我们首先打开一个连接,然后创建记录集对象。当然,这里的脚本按照本文第一部分所总结的编码规则作了优化。

< % Option Explicit % >
< !-- #Include file="ADOVBS.INC" -- >
< %
Dim objConn
Dim objRS

Response.Write( _
   "< HTML >< HEAD >" & _
   "< TITLE >ADO Test< /TITLE >" & _
   "< /HEAD >< BODY >" _
)

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Application("Conn")

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = adOpenForwardOnly
objRS.LockType = adLockReadOnly
objRS.Open Application("SQL")

If objRS.EOF Then
   Response.Write("No Records Found")
Else
   'write headings
   Response.Write( _
      "< TABLE BORDER=1 >" & _
      "< TR >" & _
      "< TH >OrderID< /TH >" & _
      "< TH >CustomerID< /TH >" & _
      "< TH >EmployeeID< /TH >" & _
      "< TH >OrderDate< /TH >" & _
      "< TH >RequiredDate< /TH >" & _
      "< TH >ShippedDate< /TH >" & _
      "< TH >Freight< /TH >" & _
      "< /TR >" _
   )
   'write data
   Do While Not objRS.EOF
      Response.Write( _
         "< TR >" & _
         "< TD >" & objRS("OrderID") & "< /TD >" & _
         "< TD >" & objRS("CustomerID") & "< /TD >" & _
         "< TD >" & objRS("EmployeeID") & "< /TD >" & _
         "< TD >" & objRS("OrderDate") & "< /TD >" & _
         "< TD >" & objRS("RequiredDate") & "< /TD >" & _
         "< TD >" & objRS("ShippedDate") & "< /TD >" & _
         "< TD >" & objRS("Freight") & "< /TD >" & _
         "< /TR > " _
      )
      objRS.MoveNext
   Loop
   Response.Write("< /TABLE >")
End If

objRS.Close
objConn.Close
Set objRS = Nothing
Set objConn = Nothing

Response.Write("< /BODY >< /HTML >")
% >

   下面是测试结果:

   我们来看一下各栏数字的含义:
0    返回0个记录的页面所需要的TTLB(毫秒)。在所有的测试中,该值被视为生成页面本身(包括创建对象)的时间开销,不包含循环访问记录集数据的时间。
25    以毫秒计的提取和显示25个记录的TTLB
tot time/25    "25"栏的TTLB除以25,它是每个记录的总计平均时间开销。
disp time/25    "25"栏的TTLB减去"0"栏的TTLB,然后除以25。该值反映了在循环记录集时显示单个记录所需时间。
250    提取和显示250个记录的TTLB。
tot time/250    "250"栏的TTLB除以25,该值代表单个记录的总计平均时间开销。
disp time/250    "250"栏的TTLB减去"0"栏的TTLB,再除以250。该值反映了在循环记录集时显示单个记录所需时间。

   上面的测试结果将用来同下一个测试结果比较。

时间: 2025-01-20 23:27:01

ASP程序性能测试报告(二)的相关文章

ASP程序性能测试报告

程序|性能 纲要:ASP动态生成的内容以什么方式输出效率最高?最好用哪种方法提取数据库记录集?本文测试了近20个这类ASP开发中常见的问题,测试工具所显示的时间告诉我们:这些通常可以想当然的问题不仅值得关注,而且还有出乎意料的秘密隐藏在内. 一.测试目的 本文的第一部分考察了ASP开发中的一些基本问题,给出了一些性能测试结果以帮助读者理解放入页面的代码到底对性能有什么影响.ADO是由Microsoft开发的一个通用.易用的数据库接口,事实证明通过ADO与数据库交互是ASP最重要的应用之一,在第二

ASP程序性能测试报告(七)

程序|性能 十.用哪种方法引用记录集字段值效率最高? 10.1 测试 至此为止我们一直通过名字引用记录集中的字段值.由于这种方法要求每次都必须寻找相应的字段,它的效率并不高.为证明这一点,下面这个测试中我们通过字段在集合中的索引引用它的值(ADO__08.asp):   'write data   Do While Not objRS.EOF       Response.Write( _         "< TR >" & _         "<

ASP程序性能测试报告(六)

程序|性能 七.最好用哪种方法提取记录集? 到目前为止我们一直通过创建Recordset对象提取记录集,但是ADO也提供了间接的记录集提取方法.下面的测试比较ADO__03.asp和直接从Connection对象创建记录集(CONN_01.asp)这两种方法: Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open Application("Conn") Set objRS = objCo

ASP程序性能测试报告(四)

程序|性能 五.使用记录集时是否应该创建单独的连接对象? 要正确地回答这个问题,我们必须分析两种不同条件下的测试:第一,页面只有一个数据库事务:第二,页面有多个数据库事务. 在前例中,我们创建了一个单独的Connection对象并将它赋给Recordset的ActiveConnection属性.然而,如ADO__03.asp所示,我们也可以直接把连接串赋给ActiveConnection属性,在脚本中初始化和配置Connection对象这一额外的步骤可以省去. objRS.ActiveConne

ASP程序性能测试报告(三)

程序|性能 四.是否应该通过包含引用ADOVBS.inc? Microsoft提供的ADOVBS.inc包含了270行代码,这些代码定义了大多数的ADO属性常量.我们这个示例只从ADOVBS.inc引用了2个常量.因此本次测试(ADO__02.asp)中我们删除了包含文件引用,设置属性时直接使用相应的数值. objRS.CursorType = 0     ' adOpenForwardOnlyobjRS.LockType = 1       ' adLockReadOnly 可以看到页面开销下

ASP程序性能测试报告(一)

纲要:ASP动态生成的内容以什么方式输出效率最高?最好用哪种方法提取数据库记录集?本文测试了近20个这类ASP开发中常见的问题,测试工具所显示的时间告诉我们:这些通常可以想当然的问题不仅值得关注,而且还有出乎意料的秘密隐藏在内.一.测试目的 本文的第一部分考察了ASP开发中的一些基本问题,给出了一些性能测试结果以帮助读者理解放入页面的代码到底对性能有什么影响.ADO是由Microsoft开发的一个通用.易用的数据库接口,事实证明通过ADO与数据库交互是ASP最重要的应用之一,在第二部分中,我们就

ASP程序性能测试报告(五)

六.哪种游标类型和记录锁定方式效率最高? 迄今为止的所有测试中我们只使用了"只能向前"的游标来访问记录集.ADO为记录集提供的游标还有三种类型:静态可滚动的游标,动态可滚动的游标,键集游标.每种游标都提供不同的功能,比如访问前一记录和后一记录.是否可以看到其他程序对数据的修改等.不过,具体讨论每一种游标类型的功用已经超出了本文的范围,下表是各种游标类型的一个比较性的分析. 和"只能向前"类型的游标相比,所有其它的游标类型都需要额外的开销,而且这些游标在循环内一般也要

如何增强ASP程序性能(2) (jaklin摘自Yesky)

程序|性能                    如何增强ASP程序性能(2)               2000-08-11· 编译:甘冀平·Yesky 技巧6:聪明地使用Session对象 Session在繁忙站点上使用时有几个缺陷.繁忙的意思是:站点上每秒有上百的页面被请求,或者同时有上千的访问用户.这个技巧对于那些要求水平扩展强的站点非常重要,也就是指这些站点:它们利用多个服务器完成数据装载或者处理大量容错.对于小型站点,比如内部网Intranet,Session是非常值得提倡的. 再

如何增强ASP程序性能(1)

程序|性能 如何增强ASP程序性能(1) 2000-08-10· 甘冀平·Yesky 简介 性能是一个很重要的特征.你需要事先设计好性能指标,否则日后就要为此重新编写程序.就是说:要设想好怎样最佳化地执行ASP程序? 本文提出了一些优化ASP应用和VBScript的技巧,许多技巧和缺陷都经过了研讨.这里列出的建议已经在http://www.microsoft.com 和其他站点上进行了测试,都工作得非常好.本文假设你具备ASP开发的基本知识,包括VBScript或者JScript,ASP应用程序