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);