作者:iMR_WALRUS海象先生ninoGmH | 来源:互联网 | 2023-05-18 21:19
我想问一下,如果像我们这么多人同时在线的网站,在建立conn时,是在global.asa里而直接用conn.open打开,然后网页关闭时conn自动关闭,速度快一些,还是在每个页面用conn.ope
我想问一下,如果像我们这么多人同时在线的网站,在建立conn时,是在global.asa里而直接用conn.open 打开,然后网页关闭时conn自动关闭,速度快一些,还是在每个页面用conn.open打开,然后在页面的最后用conn.close
set cOnn=nothing速度好一些呢?
2 个解决方案
关注!
个人认为连接数据库很消耗资源,应该放在global.asa的Application_OnStart里,conn保存在Application对象里,有再多的人登陆,都只进行一次数据库连接。
但发现CSDN的朋友们习惯在每一个页连接数据库,在这个页结束的时候set nothing,我有点困惑了。每次打开一页都要进行连接数据库的操作,不消耗资源吗?
有朋友说,同样名称(是同样连接字符串吧?)的数据库连接Conn,都会自动放在IIS的连接池里。是这样吗?
昨天看到一篇文章,《改进性能和样式的24个ASP技巧》,明确提出,不要把ADO对象放在Application里。
原文如下:
---------------------------------------------------------------------
技巧 5:不要在 Application 或 Session 对象中缓存数据库连接
缓存 ADO 连接通常是不好的策略。如果一个 Connection 对象存储在 Application 中,并在所有页上使用,那么所有页将竞争使用该连接。如果Connection 对象存储在 ASP Session 对象中,那么将为每个用户创建数据库连接。这将连接池的好处毁于一旦,并对 Web 服务器和数据库产生不必要的压力。
取代缓存数据库连接的方法是,在每个使用 ADO 的 ASP 页上创建并取消 ADO 对象。这是个有效的方法,因为 IIS 具有内置的数据库连接池。更准确的说,IIS 自动启用 OLEDB 和 ODBC 连接池。这确保了创建并取消每个页上的连接将是有效的。
---------------------------------------------------------------------
忘高手指教。
每个页面打开一次把,不要放在appliaction 中