Member-only story

Using AsSplitQuery() in Entity Framework Core and Its Performance Benefits

Onur Karaoz
2 min readJan 30, 2025

--

The AsSplitQuery() method enables the split query mechanism in Entity Framework Core. This method is designed to optimize performance when executing queries that include related entities (such as those using Include).

What Does AsSplitQuery() Do?

By default, Entity Framework Core retrieves related data (navigation properties included via Include) using a single large JOIN query. This approach, known as a “single query”, can lead to performance issues in database systems.

When fetching a large number of related entities, a massive result set with redundant data may be returned, causing cartesian explosion issues.

When AsSplitQuery() is used, instead of retrieving related data using a single large JOIN, it runs multiple smaller independent queries. This results in:
Avoiding unnecessary data duplication (cartesian explosion)
Lower memory usage
Reduced network load
Potential performance improvement in some scenarios

Usage Scenarios

A common use case is querying an entity along with its related entities using Include():

Example 1: Without AsSplitQuery() (Single JOIN Query)

var customers = await context.Customers
.Include(c => c.Orders)…

--

--

Onur Karaoz
Onur Karaoz

Written by Onur Karaoz

As a .NET Developer, I have experience in JavaScript, ASP.NET Core, and API development. I also share my knowledge and experiences in the software world.

No responses yet