• λ我爱Aspx >> Asp.Net >> ASP程序性能测试报告
  • ASP程序性能测试报告

  • :aspxer  Դ:internet  :2007-5-15 20:47:26  ؼ:asp
  • 因此,我们的第一条规则为:

    l避免包含ADOVBS.inc文件,通过其他方法访问和使用ADO常量。

    五、使用记录集时是否应该创建单独的连接对象?

    要正确地回答这个问题,我们必须分析两种不同条件下的测试:第一,页面只有一个数据库事务;第二,页面有多个数据库事务。

    在前例中,我们创建了一个单独的Connection对象并将它赋给Recordset的ActiveConnection属性。然而,如ADO__03.asp所示,我们也可以直接把连接串赋给ActiveConnection属性,在脚本中初始化和配置Connection对象这一额外的步骤可以省去。

    objRS.ActiveConnection = Application("Conn")

    虽然Recordset对象仍旧要创建一个连接,但此时的创建是在高度优化的条件下进行的。因此,与上一次测试相比,页面开销又下降了23%,而且如预期的一样,单个记录的显示时间没有实质的变化。

    因此,我们的第二个规则如下:

    l如果只使用一个记录集,直接把连接串赋给ActiveConnection属性。

    接下来我们检查页面用到多个记录集时,上述规则是否仍旧有效。为测试这种情形,我们引入一个FOR循环将前例重复10次。在这个测试中,我们将研究三种变化:

    第一,如ADO__04.asp所示,在每一个循环中建立和拆除Connection对象:

    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

    第二,如ADO__05.asp所示,在循环外面创建Connection对象,所有记录集共享该对象:

    Set objConn = Server.CreateObject("ADODB.Connection")

    objConn.Open Application("Conn")

    Ҷƪл˵?
  • һƪ用ASP编写下载网页中所有资源的程序
    һƪ用ISAPIfilter使INC、ASA文件安全