Entity Framework Core Interview Question #126

What are the most important ways to improve EF Core query performance?

Performance, Raw SQL, Stored Procedures & Advanced Queries Senior Advanced

Quick Interview Answer

Filter early, project only required columns, paginate large result sets, and use AsNoTracking for read-only entity queries. Avoid N+1 queries, unnecessary Include graphs, repeated round trips, and client-side processing of large datasets. Ensure important filter, join, and ordering columns have suitable indexes. For critical queries, inspect generated SQL and database execution plans and optimize from measurements.

Detailed Explanation

Filter early, project only required columns, paginate large result sets, and use AsNoTracking for read-only entity queries. Avoid N+1 queries, unnecessary Include graphs, repeated round trips, and client-side processing of large datasets. Ensure important filter, join, and ordering columns have suitable indexes. For critical queries, inspect generated SQL and database execution plans and optimize from measurements.

Code Example

var items = await db.Products
    .AsNoTracking()
    .Where(p => p.IsPublished)
    .Select(p => new { p.Id, p.Name, p.Price })
    .Take(50)
    .ToListAsync(cancellationToken);