我希望您能帮助我讨论如何使用通用方法避免过多的连接。对此有一般规则吗?
目前,我有一个非常复杂的查询,它连接了 11 个表,性能很差(即使有索引和更新的统计信息)。使用 Entity Framework Profiler,我收到了减少连接数量的建议,而是执行几个单独的查询:link。
每个连接都需要数据库执行额外的工作,并且查询的复杂性和成本随着每个额外的连接而迅速增长。虽然关系数据库已针对处理连接进行了优化,但执行多个单独的查询通常比执行包含多个连接的单个查询更有效。
我应该如何修改以下示例以获得更好的性能?
select *
from Blogs blog0_
inner join Posts posts1_
on blog0_.Id = posts1_.BlogId
inner join Comments comments2_
on posts1_.Id = comments2_.PostId
inner join Users user3_
on posts1_.UserId = user3_.Id
inner join UsersBlogs users4_
on blog0_.Id = users4_.BlogId
inner join Users user5_
on users4_.UserId = user5_.Id