Avoid too many joins
The profiler has detected a query that contains a large number of joins, such as this one:
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
Queries with too many joins might be a performance problem.
Each join requires the database to perform additional work, and the complexity and cost of the query grows rapidly with each additional join. While relational database are optimized for handling joins, it is often more efficient to perform several separate queries instead of a single query with several joins in it.
For OLTP systems, you should consider simplifying your queries or simplifying the data model. While we do not recommend avoiding joins completely, we strongly discourage queries with large numbers of joins.
Another issue to pay attention to is possible Cartesian products in queries contains joins, it is very easy to create such a thing and not notice it during development.