加速简单的 LINQ 查询
有什么办法可以加快这个查询的速度:
return _database.Countries
.Include("Accounts")
.Where(country => country.Accounts.Count > 0)
.ToList();
大约有 70 个账户和 70 个国家,这个查询大约需要 1.5 秒来执行,这是相当长的。
编辑:_database 是一个 EntityFramework 模型
Is there any way of speeding up this query:
return _database.Countries
.Include("Accounts")
.Where(country => country.Accounts.Count > 0)
.ToList();
There are about 70 accounts and 70 Countries, this query takes about 1.5 seconds to execute which is quite long.
EDIT: _database is an EntityFramework model
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试将
Where
子句更改为:...但实际上您的第一个调用端口应该是数据库分析器。查看生成的查询,并将其放入您最喜欢的分析器中。像检查任何其他 SQL 查询一样检查索引等。
一旦您弄清楚生成的 SQL 速度慢的原因以及您希望 SQL 是什么样子,您就可以开始研究如何更改查询以生成该 SQL。
You could try changing the
Where
clause to:... but really your first port of call should be a database profiler. Look at the generated query, and put it into your favourite profiler. Check indexes etc as you would any other SQL query.
Once you've worked out why the generated SQL is slow and what you'd like the SQL to look like, then you can start working out how to change your query to generate that SQL.
您可以使用 sql profiler 来捕获针对数据库执行的查询,然后使用它可以使用 sql server 上的索引来优化场景。
You could, use sql profiler to trap the query that is being executed against the database, then using this you could optimise the scenario with indexes on the sql server.