当前位置: 首页 > 图文教程 > 网络编程 > ASP > 认识和优化connection对象

ASP
构建你的网站新闻自动发布系统之三
构建你的网站新闻自动发布系统之四
如何用ASP编写网站统计系统一
如何用ASP编写网站统计系统二
如何用ASP编写网站统计系统三
如何用ASP编写网站统计系统四
ASP Error 0115的一些解决办法
ASP 3.0 新特色先睹为快(一)
ASP 3.0 新特色先睹为快(二)
ASP主件中的安全问题
一个汉字转成拼音的代码
使用w3Sockets组件实现域名查询功能
ASP中实现文件上传方法的研究
构建免受FSO组件威胁虚拟主机
用XMLHTTP做一个自己特色的Google
用asp实现的代码批量修改程序
无组件的数据库的备份与还原
用ASPJPEG组件制作图片的缩略图和加水印
解密ASP源代码
XmlHttp异步获取网站数据的例子

ASP 中的 认识和优化connection对象


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 129 ::
收藏到网摘: n/a

   在这个数据库连接中。我们使用了session对象,首先,建立一个conn的连接对象,然后连接到数据库data.mdb中,取得连接句柄后,把它保存在session("conn")这个session会话变量中,在打开记录集前,从session("conn")中取出句柄,借助于session对象。我们可以使不同的ASP页面共用一个连接对象,减少了对服务器内存的开销,而我们也不需要担心,当一个客户因为错误操作导致服务器不能析放该被占用的session连接对象,因为我们知道每个客户的session对象是有一定的生存期限的,过了这个期限,服务器就会自动把它析放掉。
在ASP的数据库编程中,connection对象是我们不可能离开的一个对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须借助于connection对象来完成。形象地来说,connection对象就是程序于数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,无论我们以何种方式连接数据库前,总是少不了执行下列的代码。 
 Set conn = Server.CreateObject("ADODB.Connection") 
 建立一个connection对象的实例变量,然后在它的基础上建立recorderset对象或是command对象来操作数据库。既然connection对象是如此的重要,那么如何优化和管理好connection对象对数据库程序来说是极其重要的,它关系到程序的性能。 
 每当一个客户执行数据库操作时,就需要借助一个connection对象,而每个connection对象就会占用服务器的一部分资源,而数据库的同时连接数不可能是无限的,因此。在考滤要提供高性能的数据库web程序时,我们需要考滤如何去减少服务器的开销。一般来说。每个asp页面中建立一个connection对象,都会在服务器中产生一个对数据库的连接。而不同的页面的connection对象是不能共享的。那么。我们可不可以使同一个用户所访问的不同页面共享一个connection连接通道呢。 
 大家不妨想一想我们的asp六大内建对象的session对象,他可以为某个特定的用户来保存私有的数据,如果我们把connection对象保存在session对象中,是否可以使不同的asp页面都使用同一个连接通道呢?看看下面的这段程序。 

<%
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/")&"/news/data/data.mdb"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
session("conn")=conn
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from data"
cn=session("conn")
rs.open sql,cn,3,2

%>

在这个数据库连接中。我们使用了session对象,首先,建立一个conn的连接对象,然后连接到数据库data.mdb中,取得连接句柄后,把它保存在session("conn")这个session会话变量中,在打开记录集前,从session("conn")中取出句柄,借助于session对象。我们可以使不同的ASP页面共用一个连接对象,减少了对服务器内存的开销,而我们也不需要担心,当一个客户因为错误操作导致服务器不能析放该被占用的session连接对象,因为我们知道每个客户的session对象是有一定的生存期限的,过了这个期限,服务器就会自动把它析放掉。 
 而ODBC3.0所提供的连接池connection pooling。也能有效地提高数据库的运行性能。我们知道,在众多的asp页面中生成的connection对象,总是处在不断建立连接,解除连接,析放连接中。 
 如何能高效的管理和使用好这些被废弃的连接,也可以在一定程序上大大提高运行效率。而ODBC3.0则提供了这样的功能,它能聪明的把需要新建立的连接引导至即将废弃的connection对象上,反复地使用它。这样,就能节省了不好服务器的开销。