手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp编程>列表

提高ASP性能的最佳选择(续一)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


  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 TTLB除以25条记录(毫秒)。代表每条记录的总平均时间。

  disp time/25 以毫秒计的TTLB减去“0”那栏的TTLB,并除以25条记录。代表在记录集中循环显示每条记录的时间。

  250 装载并显示250条记录的TTLB(毫秒)。

  tot time/250 TTLB除以250条记录(毫秒)。代表每条记录的总平均时间。

  disp time/250 以毫秒计的TTLB减去“0”那栏的TTLB,并除以250条记录。代表在记录集中循环显示每条记录的时间。

  我们将用下面测试的结果与这些值相比较。

是否应该使用ADOVBS.inc 包含文件?
  这个问题我想快点解决。Microsoft 提供的ADOVBS.inc 文件包含270行代码,代表可以应用于ADO属性的大部分常量。我们的例子中只引用了这个文件中的2个常量。因此对于这个测试( ADO__02.asp ),我取消了包含文件的引用,并用属性列举中的实际数字代替了常量。

  objRS.CursorType = 0 ' adOpenForwardOnly

  objRS.LockType = 1 ' adLockReadOnly


  我们可以看到装载时间减少了23%。这与每条记录的显示时间有定义上的不同,因为这种改变对于在记录集中循环不应该有影响。这个问题有几种解决办法。我建议使用ADOVBS.inc 文件作为参考,必要时使用注释来注明数字。要记住,就如同在第一部分所阐明的一样,注释是不需要惧怕的,因为只要使用适度,它们不会给性能带来大的影响。另一种方法是只从文件中将你所需要的常量复制到页面中。

  解决这个问题有一个很酷的方法,通过将ADO类库连接到你的应用程序,使所有的ADO常量都可用。将以下代码增加到你的Global.asa 文件,你就可以直接使用所有的常量。

  < !--METADATA TYPE="typelib"

  FILE="C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll"

  NAME="ADODB Type Library" -- >

  或

  < !--METADATA TYPE="typelib"

  UUID="00000205-0000-0010-8000-00AA006D2EA4"

  NAME="ADODB Type Library" -- >

  所以,这里是我们的第一个规则:

  * 避免包含ADOVBS.inc文件,用其它方法来使用常量。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!