网络编程
位置:首页>> 网络编程>> Asp编程>> asp 性能测试报告 学习asp朋友需要了解的东西(4)

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

 来源:asp之家 发布时间:2011-03-09 10:57:00 

标签:asp,性能测试


   接下来我们检查页面用到多个记录集时,上述规则是否仍旧有效。为测试这种情形,我们引入一个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") 

Dim i 
For i = 1 to 10 
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 

Next 
objConn.Close 
Set objConn = Nothing 

第三,如ADO__06.asp所示,在每一个循环内把连接串赋给ActiveConnection属性:

代码如下:

Dim i 
For i = 1 to 10 

Set objRS = Server.CreateObject("ADODB.Recordset") 
objRS.ActiveConnection = Application("Conn") 
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 
Next 

就象我们可以猜想到的一样,在循环内创建和拆除连接对象是效率最差的方法。不过,令人惊异的是,在循环内直接把连接串赋给ActiveConnection属性只比共享单个连接对象稍微慢了一点。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com