2

我正在为一个相当复杂的站点使用 Linq to SQL,并且在上线后,我们遇到了许多数据库超时。我注意到的第一件事是与数据库有相当多的连接。

来自 ADO.net 背景,我们曾经对其进行编码,以便任何站点只使用一个或两个池连接,这导致即使有相当少的并发用户也可以获得可接受的性能。

所以我的问题是,这种旧的做法是有缺陷的,还是有办法做到 LINQ?似乎我们的性能问题是由与数据库的大量连接引起的,但如果这是一个问题,我会认为它会在所有 LINQ 教程中提到。

有什么建议么?

4

1 回答 1

3

我猜你正在保留 DataContexts,而不是在完成后对它们调用 Dispose(或者至少将它们留在周围)。

相反,您应该初始化 DataContext,执行您的操作,然后在完成后将其丢弃。您不应该在操作之间持有对它的引用。

最好使用 using 语句来处理对 IDisposable 的调用。

关于连接池,默认情况下 SqlClient 池连接,因此除非您明确将其关闭,否则您应该已经利用它。当然,如果您不释放正在使用的连接,那么池化只会带您到此为止。

于 2009-03-12T18:11:53.530 回答