Встречается на 16% собеседований по C#

Как оптимизировать запросы к БД

  1. Индексы – добавляй индексы на часто используемые поля в WHERE, JOIN, ORDER BY.

    csharp
    // Пример создания индекса через EF Core  
    modelBuilder.Entity<User>().HasIndex(u => u.Email).IsUnique();
  2. Выборка только нужных данных – избегай SELECT *, используй проекции.

    csharp
    var users = dbContext.Users.Select(u => new { u.Id, u.Name }).ToList();
  1. Пагинация – для больших таблиц применяй Skip()/Take().

    csharp
    var pagedUsers = dbContext.Users.Skip(10).Take(5).ToList();
  2. Ленивая загрузка (Lazy Loading) vs Жадная (Eager Loading) – выбирай осознанно.

    csharp
    // Eager Loading  
    var orders = dbContext.Orders.Include(o => o.Items).ToList();
  3. Кэширование – Redis или MemoryCache для часто читаемых данных.

  4. Batch-операции – группируй INSERT/UPDATE.

    csharp
    dbContext.BulkInsert(entities); // Например, через библиотеку EF Extensions
  5. Оптимизация JOIN – проверяй наличие индексов и избегай избыточных связей.

Важно: всегда анализируй план выполнения запроса (EXPLAIN в SQL).

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы