3
我想你的幫助來討論如何使用通用方法避免太多的聯接。這是否有一個通用規則?如何避免太多連接?
目前,我有一個非常複雜的查詢連接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
您的查詢可能沒有問題,假設您有適當的索引。該鏈接非常具有誤導性。 – 2014-09-24 03:00:00
更適合我們兄弟的網站。 Codereview – 2014-09-24 03:00:14
連接實際上是您可以在SQL Server上執行的更便宜的事情之一。結果記錄的數量可能會導致問題。 – 2014-09-24 03:00:44