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

(作者:青苹果工作室编译 )
当使用一个记录集时,是否应该创建一个单独的Connection对象?
  要想正确回答这个问题,需要在两个不同情况下检验测试结果:第一是每页执行一个数据库处理的情况,第二是每页执行多个数据库处理的情况。
  在前面的例子中,我们已经创建了一个单独的Connection对象,并将它传递到记录集的ActiveConnection 属性。但是也有可能仅仅把连接字符串传递到这个属性中,从而可以避免一个额外的步骤,即在脚本( ADO__03.asp )中例示和配置一个单独的组件:
  objRS.ActiveConnection = Application("Conn")

  尽管我们仍然在记录集中创建了一个连接,但它是在非常优化的情况下创建的,所以刚一开始我们就看到启动时间比以前的测试减少了23%,同预料中一样,同每个记录的显示时间几乎没有什么差别。
  因此,我们的第二个规则是:
  * 当使用一个单个记录集时,将连接字符串传递到ActiveConnection属性中。
  下面要确定当在一个页面上创建多个记录集时,这个逻辑是否依然成立。为测试这个情况,我引入了FOR 循环,将前面的例子重复10次。在这个测试中,我们还将研究3种选择:
  第一,我们在每个循环中创建并销毁Connection 对象( ADO__04.asp ):
  Dim i
  For i = 1 to 10
  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open Application("Conn")
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.ActiveConnection = objConn
  objRS.CursorType = 0 'adOpenForwardOnly
  objRS.LockType = 1 'adLockReadOnly
  objRS.Open Application("SQL")
  If objRS.EOF Then
  Response.Write("No Records Found")
  Else
  'write headings
  ...
  'write data
  ...
  End If
  objRS.Close
  Set objRS = Nothing
  objConn.Close
  Set objConn = Nothing
  Next
  第二,在循环外创建一个单独的Connection 对象,并与每个记录集共享它( ADO__05.asp ):
  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open Application("Conn")

时间: 2024-08-19 22:57:45

提高ASP性能的最佳选择(续二)的相关文章

什么才是提高ASP性能的最佳选择(二)

性能 是否应该开启缓冲器? 通过脚本程序启动缓冲器 在ASP脚本的顶部包含Response.Buffer=True ,IIS就会将页面的内容缓存. < % OPTION EXPLICIT Response.Buffer = true Dim FirstName - /app1/buffer__1.asp的片段 以前的最佳(反应时间)= 7.05 msec/page 反应时间 = 6.08 msec/page 差= -0.97 msec (降低13.7%) 性能得到了极大提高.但是等等,还能有更好

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

性能 作者:青苹果工作室编译 是否应该开启缓冲器? 通过脚本程序启动缓冲器 在ASP脚本的顶部包含Response.Buffer=True ,IIS就会将页面的内容缓存. < % OPTION EXPLICIT Response.Buffer = true Dim FirstName - /app1/buffer__1.asp的片段 以前的最佳(反应时间)= 7.05 msec/page 反应时间 = 6.08 msec/page 差= -0.97 msec (降低13.7%) 性能得到了极大提

提高ASP性能的最佳选择2

性能 是否应该开启缓冲器? 通过脚本程序启动缓冲器 在ASP脚本的顶部包含Response.Buffer=True ,IIS就会将页面的内容缓存. < % OPTION EXPLICIT Response.Buffer = true Dim FirstName - /app1/buffer__1.asp的片段 以前的最佳(反应时间)= 7.05 msec/page 反应时间 = 6.08 msec/page 差= -0.97 msec (降低13.7%) 性能得到了极大提高.但是等等,还能有更好

什么才是提高ASP性能的最佳选择

性能 ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力.幸运地是,有许多书籍和站点在这方面提供了很好的建议.但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量.由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价. 本文分为两大部分,我将介绍一些性能测试结果,帮助开发人员来确定某一特定举措是否不仅对将来的项目来说是值得的,并

什么才是提高ASP性能的最佳选择(续二)

性能 当使用一个记录集时,是否应该创建一个单独的Connection对象? 要想正确回答这个问题,需要在两个不同情况下检验测试结果:第一是每页执行一个数据库处理的情况,第二是每页执行多个数据库处理的情况. 在前面的例子中,我们已经创建了一个单独的Connection对象,并将它传递到记录集的ActiveConnection 属性.但是也有可能仅仅把连接字符串传递到这个属性中,从而可以避免一个额外的步骤,即在脚本( ADO__03.asp )中例示和配置一个单独的组件: objRS.ActiveC

什么才是提高ASP性能的最佳选择(续)

性能 在本文的第一部分中,我回顾了有关ASP开发的一些基本问题,介绍了一些性能测试的结果,以理解我们放置在页面中的代码可能对运行性能造成什么样的影响.在这个系列的第二部分,我们将探讨经过论证的ASP最广泛的用途,即通过ActiveX 数据对象(ADO)交互使用数据库内容.ADO是Microsoft通用并简单的数据库界面. ADO有很多的功能设置,因此准备这篇文章时最大的挑战便是限制测试问题的范围.考虑到读取大数据集会为web 服务器施加很大的负载,我决定将研究的内容局限在为使用ADO记录集寻找最

什么才是提高ASP性能的最佳选择(续四)

性能 规则的总结 现在我们来重新总结一下这些规则: * 避免包含ADOVBS.inc文件,用其它方法来使用常量. * 当使用一个单个记录集时,将连接字符串传递到ActiveConnection属性中. * 在一个页面上使用多个记录集时,创建一个Connection 对象,在ActiveConnection 属性中重复使用它. * 使用最适合你的任务的最简单的指针和锁的类型. * 通过ADODB.Recordset 类例示记录集以获得最好的性能和最大的灵活性. * 除非是一个断开的环境中所要求的,

什么才是提高ASP性能的最佳选择(续一)

性能 在本文的第一部分中,我回顾了有关ASP开发的一些基本问题,介绍了一些性能测试的结果,以理解我们放置在页面中的代码可能对运行性能造成什么样的影响.在这个系列的第二部分,我们将探讨经过论证的ASP最广泛的用途,即通过ActiveX 数据对象(ADO)交互使用数据库内容.ADO是Microsoft通用并简单的数据库界面. ADO有很多的功能设置,因此准备这篇文章时最大的挑战便是限制测试问题的范围.考虑到读取大数据集会为web 服务器施加很大的负载,我决定将研究的内容局限在为使用ADO记录集寻找最

什么才是提高ASP性能的最佳选择(续三)

性能 引用记录集中域值的最有效方法是什么? 到目前为止,我都是用名字引用记录集中的域值的.这可能是一种效率很低的方法,因为每次调用都需要查找域.为了证明这一点,下面的测试就要通过记录集中域的集合的指针来引用域(ADO__08.asp): 'write data Do While Not objRS.EOF Response.Write( _ "< TR >" & _ "< TD >" & objRS(0) & &quo