在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时间。若每一个用户访问时,都重新建立连接,不仅用户要长时间等待,而且系统有可能会由于资源消耗过大而停止响应。如果能够重用以前建立的数据库连接,而不是每次访问时都重新建立连接,则可以很好地解决这些问题,从而提高整个系统的性能。在IIS+ASP处理体系中,采用了Connection pool机制来保证这一点。
Connection pool的原理是,IIS+ASP体系中维持了一个连接缓冲池,建立好的数据库连接在ASP程序中的断开都是逻辑断开,而实际的物理连接被存储在池中并被维护。这样,当下一个用户访问时,直接从连接缓冲池中取得一个数据库连接,而不需重新连接数据库,因此,可以大大地提高系统的响应速度。
为了正确使用Connection pool时,必须注意以下几点:
a). 在MDAC2.0以前的版本中,必须经过数据库驱动程序的配置才能使用Connection Pool;在以后的版本中(比如MDAC2.1),缺省是使用Connection Pool机制。具体配置情况可以参见微软公司的站点()。
顺便提一句,在使用ORACLE数据库时,最好使用微软提供的驱动程序。
b). 每次数据库连接串参数必须相同,否则会被认为是不同的连接而重新去连接数据库,而不是使用缓冲池中的连接。最好的做法是将连接串存储在Application变量中,所有的程序在建立连接时使用Application变量的值。
c). 为了更好地使用和维护连接缓冲池,建议在程序中使用以下的方法对数据库连接进行 *** 作,因为隐式使用数据库连接时不能利用缓冲池的机制:
¨ 显示地创建连接对象: Set conn=Server.CreateObject(“Adodb.connection”)
¨ 建立数据库连接:conn.open Application(“connection_string”),…
¨ 进行数据库 *** 作:…
¨ 显式地关闭连接对象:conn.close
2、 利用直接的Ole DB驱动程序
原因:数据库设置错误导致的。解决方法:创建一个访问数据库的权限。
1.使用数据库机器上的CMD指令调用命令行窗口,然后使用sqlplus/assysdba登录到数据库。并与将被授予权限的表所有者连接到数据库,否则后续的权限将失败。
2.创建由test123标识的用户测试创建密码设置为test123的测试用户。
3.授权测试用户的连接和资源权限。授予连接、测试资源,如下图。
4.Cify表授权查询权限。给用户一个选择,表测试。
5.为了与新的登录数据库进行验证,我们首先尝试删除删除数据的功能,无法执行错误,说明我们添加的用户没有删除的权利。
6.然后验证select查询函数是否成功地找到了指定的数据。创建新用户并指定查询权限函数的实现。对未授权表的查询也会被拒绝,如下图。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)