← Назад к вопросам
Когда нужно создавать дополнительные индексы в таблицах регистров?
3.0 Senior🔥 91 комментариев
#СУБД и хранение
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Индексы в таблицах регистров
Когда нужны дополнительные индексы
Индексы требуются в следующих случаях:
- Медленные отчёты — если запрос работает > 5 секунд
- Частые фильтры — одна и та же комбинация WHERE
- Большие регистры — > 100 000 строк
- СрезПоследних — требует быстрого доступа по измерениям
Какие индексы создавать
Индекс по измерениям:
// РегистрНакопления.ДвижениеТоваров
// Измерения: Товар, Склад, Период
// → Создай индекс (Товар, Склад, Период)
Для часто фильтруемых полей:
Если запрос часто использует:
WHERE Товар = ? И Склад = ?
→ Индекс (Товар, Склад)
Стоимость индексов
| Параметр | Без индекса | С индексом |
|---|---|---|
| Чтение | Медленно | Быстро |
| Запись | Быстро | Медленнее |
| Память | Меньше | Больше |
Практический пример
50 млн строк в РегистрНакопления:
- Без индекса: 45 минут
- С индексом: 3 секунды
- Ускорение: x1500
Когда НЕ нужны индексы
- Справочники < 10 000 записей
- Регистры, которые не читаются в отчётах
- Данные с частыми INSERT (индекс замедляет)
Как проверить необходимость
Меню: Отчёты → План запроса
- Если видишь "Full Table Scan" → нужен индекс
- Если видишь "Index Seek" → индекс работает
Итог
Эмпирическое правило: Создавай индексы по всем измерениям регистра — это первоочередная оптимизация для отчётов и срезов. Дополнительные индексы добавляй по необходимости на основе анализа плана запроса.