加速简单的LINQ查询

时间:2011-05-06 10:08:08

标签: c# .net linq entity-framework

有没有办法加速这个查询:

return _database.Countries
   .Include("Accounts")
   .Where(country => country.Accounts.Count > 0)
   .ToList();

大约有70个帐户和70个国家/地区,此查询执行大约需要1.5秒,这很长。

编辑:_database是一个EntityFramework模型

2 个答案:

答案 0 :(得分:4)

您可以尝试Where子句更改为:

Where(country => country.Accounts.Any())

...但实际上您的第一个调用端口应该是数据库分析器。查看生成的查询,并将其放入您最喜欢的探查器中。像检查任何其他SQL查询一样检查索引等。

一旦你弄清楚为什么生成的SQL很慢以及你喜欢 SQL的样子,那么你就可以开始研究如何更改查询以生成SQL。

答案 1 :(得分:1)

您可以使用sql profiler来捕获正在对数据库执行的查询,然后使用它可以使用sql server上的索引优化方案。