Чем N+1 problem может быть опасен при неправильном использовании?

C# / .NETУмение учитывать production-ограничения, производительность и надежность.Entity Framework Core and ORMТеорияcsharpdotnetentity-framework-core-and-ormef-core-performancen-1-problem

Что хотят услышать интервьюеры:

Неправильное использование N+1 problem опасно тем, что проблема часто проявляется не сразу, а под нагрузкой или при изменении требований.

  • Суть: N+1 возникает, когда приложение выполняет дополнительный запрос для каждого элемента основной выборки.
  • Где встречается: доступ к данным, миграции, запросы, транзакции и оптимизация ORM-слоя.
  • Типичная ошибка: получить N+1, использовать tracking для read-only запросов или не смотреть сгенерированный SQL.
  • Как отвечать: начните с короткого определения, затем приведите пример, назовите ограничение и типичную ошибку.
  • Ожидаемый уровень: Middle+. Умение учитывать production-ограничения, производительность и надежность.

Ответ:

var orders = await db.Orders.AsNoTracking().Where(o => o.UserId == userId).ToListAsync();

Источники

Похожие вопросы