【发布时间】:2012-10-10 13:50:52
【问题描述】:
在具有大约 5 个使用同一数据库的 Web 方法的 ASP.NET Web 服务 (C# 4.0) 中打开和重用数据库连接的最佳做法是什么?理想情况下,MS Access 和 SQL 服务器的答案是相同的。
-
全局私有变量:
一个。优点:如果更改数据库提供程序,易于维护
b.缺点:无法使用“using”子句,连接可能保持打开的时间过长——连接大约保持打开多长时间?
-
将 db 连接作为方法参数传递:
一个。优点:可以在不需要时关闭连接使用'using'子句
b.缺点:到处维护和传递参数很烦人
-
在任何方法需要时使用 using 子句打开和关闭连接:
一个。问题:这是最慢的,因为您必须多次重新打开同一个连接?或者因为幕后的连接池,这不是更慢吗?因此,这可能是最佳实践……?
b.问题:连接池是否仅与 SQL 服务器相关,因此不适用于 MS Access?
起初我正在考虑使用全局私有变量 (OleDbConnection),因为我在 Web 方法和支持方法中使用到主数据库的连接相当多,并且将在不久的将来从 MS Access 迁移到 SQL Server并且很容易做出改变。
但是在阅读了一些文章后,比如Obtaining SQL connection most efficiently when using ASP.NET and web services
似乎我可以在任何地方使用“using”子句按需创建新连接而不会受到性能影响?
【问题讨论】:
标签: c# asp.net connection connection-pooling