← Назад к вопросам

Когда нужно создавать дополнительные индексы в таблицах регистров?

3.0 Senior🔥 91 комментариев
#СУБД и хранение

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Индексы в таблицах регистров

Когда нужны дополнительные индексы

Индексы требуются в следующих случаях:

  1. Медленные отчёты — если запрос работает > 5 секунд
  2. Частые фильтры — одна и та же комбинация WHERE
  3. Большие регистры — > 100 000 строк
  4. СрезПоследних — требует быстрого доступа по измерениям

Какие индексы создавать

Индекс по измерениям:

// РегистрНакопления.ДвижениеТоваров
// Измерения: Товар, Склад, Период
// → Создай индекс (Товар, Склад, Период)

Для часто фильтруемых полей:

Если запрос часто использует:
WHERE Товар = ? И Склад = ?

→ Индекс (Товар, Склад)

Стоимость индексов

ПараметрБез индексаС индексом
ЧтениеМедленноБыстро
ЗаписьБыстроМедленнее
ПамятьМеньшеБольше

Практический пример

50 млн строк в РегистрНакопления:

  • Без индекса: 45 минут
  • С индексом: 3 секунды
  • Ускорение: x1500

Когда НЕ нужны индексы

  • Справочники < 10 000 записей
  • Регистры, которые не читаются в отчётах
  • Данные с частыми INSERT (индекс замедляет)

Как проверить необходимость

Меню: Отчёты → План запроса

  • Если видишь "Full Table Scan" → нужен индекс
  • Если видишь "Index Seek" → индекс работает

Итог

Эмпирическое правило: Создавай индексы по всем измерениям регистра — это первоочередная оптимизация для отчётов и срезов. Дополнительные индексы добавляй по необходимости на основе анализа плана запроса.

Когда нужно создавать дополнительные индексы в таблицах регистров? | PrepBro