Batch Many Single-Row Lookups Into One IN-List Query
When your code looks up rows one key at a time inside a loop, you can usually collect the keys first and fetch them all with a single WHERE id IN (...) query, then build a dictionary from id to row. This turns N round trips into one, and lets the engine plan a single index scan instead of N separate ones. Keep the list bounded, a few hundred to a few thousand keys per batch, because very large IN-lists cost parse time and can push the planner toward a sequential scan.
Questions this Concept answers
- Why should an `IN`-list be kept to a few hundred or a few thousand keys?
How to Batch EF Core Queries for Faster Performance
Article: How to Batch EF Core Queries for Faster Performance