2008-09-03 75 views
6

我通常将我的连接字符串存储在web.config或我的Visual Studio项目的应用程序设置中。我目前正在处理的应用程序会进行大量的数据访问,这意味着它会每次查找连接字符串。我应该将连接字符串放入缓存中,还是应该考虑将整个SqlConnection对象存储在缓存中,以消除始终打开和关闭它们的需要?你在哪里存储数据库连接字符串?

更新:好像共识是存储在配置文件中的连接字符串,并保留缓存在ADO.NET

回答

4

我将不缓存连接对象,这将击败内置的连接池 - ADO.NET将处理连接(假设你实例化和关闭它们)有效地本身。

至于连接字符串本身,你不应该,如果你从连接加载它需要缓存它 - 在.NET 2.0框架的连接管理器对象加载配置到内存中,当你第一次访问,所以没有重复访问文件系统。

0

的信任手保持它在配置文件中。使用由NHibernate或Linq to Sql等工具提供的健壮数据访问策略。

0

从我能记得的.config文件的内容被保存在内存中...无论如何,我会回到你身边。

编辑:什么HE

1

我通常将连接字符串缓存在我的应用程序中的全局配置对象中。该值在程序执行的从那里以往任何时候都存储在开始装起来 - 文件,加密文件,配置文件等ADO.NET是在缓存连接对象数据库非常好,所以我不会缓存SqlConnection对象。

3

web.config被高速缓存。但即使不是,请不要忘记,ado.net维护一个连接池 - 每次调用数据库时都不会打开一个新的连接。

0

一个可能的解决方案: 存储初始加密连接字符串(在Web.Config或App.Config中)的登录,允许只运行一个存储过程进行身份验证。比从存储在分贝一个配置表加密的值动态地切换的登录。