제네릭 방식을 사용하여 너무 많은 조인을 피하는 방법에 대해 여러분의 도움을 부탁드립니다. 이것에 대한 일반적인 규칙이 있습니까?너무 많은 조인을 피하는 방법은 무엇입니까?
현재 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
적절한 인덱스가 있다고 가정 할 때 쿼리가 괜찮을 수도 있습니다. 이 링크는 오도 된 것입니다. –
형제 사이트에 더 적합합니다. Codereview –
조인은 실제로 SQL Server에서 수행 할 수있는 더 저렴한 작업 중 하나입니다. 문제를 일으킬 수있는 결과 레코드의 양입니다. –