认识和优化 connection 对象
在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对象上,反复地使用它。这样,就能节省了不好服务器的开消.
()
- · 如何用Asp判断你的网站的虚拟物理路径
- · 怎样才能方便的建立自己的每日更新
- · 有关ASP的一些常见问题(四)
- · 有关ASP的一些常见问题(三)
- · 有关ASP的一些常见问题(二)
- · 有关ASP的一些常见问题(一)
- · 怎么用ASP实现分页(二)
- · 怎么用ASP实现分页(一)
- · 怎样才能实现随机广告
- · Visual InterDev常见问题解答(二)
- · Visual InterDev常见问题解答(一)
- · 怎样才能知道访问者从哪里来?
- · 如何定义一个session 数组?
- · 请问:下拉式菜单中的选项能否做超链接或怎样做?
- · Sql Server 数据库,想用OLE db连数据库,怎么连呀?
- · 有没有办法保护自己的源代码,不给人看到?
- · global.asa文件总是不起作用?
- · 讨论 SELECT TOP N 问题
- · 在Asp中使用存储过程
- · 不用DNS连接数据库方法的几个参数
- · 用几行Asp代码实现防止表单多次被提交
- · ASP中使用Office2000中的图表控件
- · 关于ASP程序中日期型数据的格式问题探讨
- · 解决在执行数据库查询中的特殊字符的问题
- · asp分页显示详论
- · ASP编写数据库维护程序
- · Session对象在各浏览器中的有效范围
- · ASP访问Exchange Server问题
- · 用FrontPage98 开 发ASP
- · Global.asa 参考(五) - TypeLibrary 声明
- · Global.asa 参考(三) - Session 事件
- · Global.asa 参考(二) - Application 事件
- · Global.asa 参考(一) - 总述
- · ADO如何使用Delete语法
- · 利用ASP脚本制作异步装载的树形结构(二)
- · 利用ASP脚本制作异步装载的树形结构(一)
- · 测试客户端屏幕状况
- · 使用隐藏form把数据从客户端传到服务端
