我们将数据库连接字符串存储在哪里?

时间:2020-03-05 18:46:51  来源:igfitidea点击:

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

更新:似乎共识是将连接字符串存储在配置文件中,并将缓存留在ADO.NET的信任手中。

解决方案

回答

将其保存在配置文件中。使用NHibernate或者Linq to Sql等工具提供的可靠数据访问策略。

回答

据我所知,无论如何,.config文件的内容都保存在内存中……我会尽快与我们联系。

编辑:他说了什么

回答

我不会缓存连接对象,因为它将击败内置的连接池-ADO.NET将自行有效地处理连接(假设我们实例化并关闭它们)。

至于连接字符串本身,如果从连接加载它,则不需要缓存它-.NET 2.0框架中的连接管理器对象在初次访问它时会将配置加载到内存中,因此不会重复到文件系统。

回答

我通常将连接字符串缓存在应用程序的全局配置对象中。此值在程序执行开始时从存储它的位置加载-文件,加密文件,配置文件等。ADO.NET非常擅长将连接对象缓存到数据库,因此我不会缓存SqlConnection对象。

回答

web.config已缓存。但是,即使不是这样,也请不要忘记ado.net会维护一个连接池,它不会在每次调用数据库时打开新连接。

回答

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