浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

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

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

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

   在前例中,我们创建了一个单独的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")

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属性只比共享单个连接对象稍微慢了一点。

   尽管如此,第三规则应该为:

l同一页面内用到多个记录集时,创建单一的连接对象并通过ActiveConnection属性共享它。


相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...