【发布时间】:2011-01-17 03:29:46
【问题描述】:
我在这里看到了一个关于 Linq-To-Sql 的有趣链接: More efficient database access
查看我自己的代码,我意识到我也没有处理过DataClassesDataContext。这是一个问题吗?我不知道,但我搜索了我的代码并在我的代码中添加了using (DataClassesDataContext db = new DataClassesDataContext())。
现在,有趣的事情来了。我们在代码中记录了几乎每个页面访问和事务。所以我现在有一个看起来像这样的代码块:
protected WriteLog(String activity)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
... Do db write with Linq
}
}
这是一个使用频率很高的函数,任何时候至少每秒调用 50 次。因此,在我假设我们遭受潜在的“泄漏”之前,这是一个问题。但现在看来我们不会泄漏数据库资源,而是会花费大量时间来打开和关闭数据库连接。这不可能是对的,不是吗?上面的代码现在是否为我们用户的每一个日志条目打开和关闭一个数据库连接,这比仅仅让 DataClassesDataContext 在将来被垃圾收集更多的开销吗?
【问题讨论】:
标签: c# asp.net database performance linq-to-sql