使用linq时,有多个数据库连接的最简单方法是什么

时间:2009-11-06 19:29:10

标签: c# .net linq linq-to-sql connection-pooling

最理想的是,我希望linq使用X数据库连接而不是1来加快速度。

现在唯一的方法是打开X连接,创建X databasecontexts并关联它们。 如果以某种方式我可以告诉linq使用X连接会更容易。

这可能吗?或者还有另一种加速数据库查询的方法吗?

感谢

编辑:更改标题,因为它有误导性(根据其中一位回答者,我同意)

1 个答案:

答案 0 :(得分:3)

我认为标题具有误导性。连接池:您不需要这样做。 Linq2SQL在底层使用了一个ADO.NET SqlConnection,默认情况下是连接池。

我想要实现的目标似乎是尝试并行查询数据库。这只有在您尝试执行不同的查询或可以非常好并行化的查询时才有用。这样的查询也不应该严重依赖于锁/事务。慢查询通常不会出现这种情况。

使用一个连接加载同一查询的前50%,将底部50%加载到另一个连接不会给您带来任何好处,数据库服务器是那里的瓶颈。

LinqToSql SQL查询执行错误还有很多其他原因。其中一个被称为选择N + 1问题。 Ayende有一个great post关于在NHibernate中进行战斗,等效原则适用于L2S。

如果上述所有方法对您没有帮助,您可能需要查看允许您在一个连接上并行查询数据库的SQL Server MARS