Администрирование · 10 мин
Реиндексация таблиц информационной базы 1С: сколько занимает по времени
Сколько по времени длится реиндексация таблиц информационной базы 1С, от чего зависит скорость, как запустить процедуру и проверить результат без риска для данных.
Реиндексация таблиц информационной базы 1С — это полное перестроение всех индексов базы данных. Платформа удаляет существующие индексы и создаёт их заново на основе текущих данных. Процедура помогает при повреждении индексов после аварийного завершения работы, при заметном замедлении запросов и после массовой загрузки или удаления данных.
Точного универсального времени выполнения не существует: длительность зависит от объёма базы, типа развёртывания (файловый или клиент-серверный вариант), производительности дисковой подсистемы и количества таблиц с большим числом записей. Ориентировочные диапазоны приведены ниже, однако на конкретной базе время может отличаться в разы.
Важно понимать: реиндексация — блокирующая операция. Пока она выполняется, пользователи не могут работать с базой, поэтому процедуру планируют на нерабочее время и обязательно делают резервную копию заранее.
От чего зависит время реиндексации базы 1С
Главный фактор — объём данных. Индексы перестраиваются для каждой таблицы, и чем больше записей в документах, регистрах сведений и регистрах накопления, тем дольше идёт процесс. Регистры с сотнями миллионов записей могут занимать большую часть общего времени реиндексации.
Второй фактор — тип развёртывания. В файловом варианте скорость упирается в производительность диска компьютера или сетевого ресурса, где лежит файл 1Cv8.1CD. Размещение файловой базы на сетевом диске заметно замедляет процедуру из-за задержек сетевого доступа. В клиент-серверном варианте решающую роль играет производительность сервера СУБД (MS SQL Server, PostgreSQL и др.): объём оперативной памяти, скорость дисковой подсистемы, настройки самой СУБД.
Третья группа факторов — состояние базы. Сильно фрагментированные индексы, давно не обслуживаемая база, большое количество помеченных на удаление объектов увеличивают время работы. Нагрузка на сервер от других приложений и служб в момент реиндексации также влияет на скорость.
Больше записей в таблицах — дольше перестройка индексов
Серверный вариант с быстрыми дисками обычно быстрее
Проверьте, где физически размещены файлы данных
База на сетевом диске реиндексируется значительно дольше
Ориентировочные сроки для баз разного размера
Точные цифры назвать нельзя — они всегда индивидуальны. Ниже приведены осторожные ориентиры, которые помогают спланировать окно обслуживания, а не гарантированные значения.
Небольшая файловая база (несколько гигабайт, локальный SSD) — обычно от нескольких минут до получаса. Средняя база (десятки гигабайт) — от получаса до нескольких часов. Крупная клиент-серверная база (сотни гигабайт и более, большие регистры) — от нескольких часов до десятков часов, в тяжёлых случаях процедура может занять сутки и более.
Если реиндексация идёт аномально долго относительно размера базы, это повод проверить состояние дисков, наличие свободного места и отсутствие ошибок в журнале СУБД. Иногда чрезмерная длительность указывает на аппаратные проблемы, а не на объём данных.
Как запустить реиндексацию в конфигураторе
Стандартный способ — через конфигуратор в монопольном режиме. Перед запуском все пользователи должны завершить сеансы, а фоновые задания и регламентные операции — быть остановлены. Резервная копия базы обязательна: при сбое в процессе реиндексации без копии восстановить данные будет нечем.
- 1Создайте резервную копию базы (выгрузка в .dt для файловой или backup средствами СУБД)
- 2Завершите все сеансы пользователей и отключите регламентные задания
- 3Откройте конфигуратор и установите монопольный режим
- 4Перейдите в меню Администрирование — Тестирование и исправление
- 5Отметьте пункт «Реиндексация таблиц информационной базы», снимите остальные флажки, если нужна только реиндексация
- 6Нажмите «Выполнить» и дождитесь завершения, не прерывая процесс
- 7Проверьте работоспособность базы и зафиксируйте затраченное время
В режиме «Тестирование и исправление» реиндексацию можно запускать отдельно от других проверок — это сокращает общее время окна обслуживания. Полное тестирование со всеми проверками занимает заметно больше времени, чем одна реиндексация.
Реиндексация в клиент-серверном варианте: особенности
В клиент-серверном варианте реиндексацию можно выполнять двумя путями: стандартно через конфигуратор 1С или средствами самой СУБД. Перестроение индексов на уровне MS SQL Server или PostgreSQL часто выполняется быстрее и гибче: можно реиндексировать только фрагментированные индексы, а не все подряд, и запускать операцию по расписанию.
Выборочная реиндексация средствами СУБД существенно сокращает время обслуживания больших баз. Вместо полного перестроения всех индексов обрабатываются только те, у которых фрагментация превышает заданный порог. Подобные скрипты и регламентные задания по обслуживанию индексов — стандартная практика администрирования серверных баз.
Способы реиндексации
Простой и официальный способ, подходит для файловых и небольших серверных баз. Минус — перестраиваются все индексы и требуется монопольный доступ
Быстрее и гибче для больших серверных баз, возможна выборочная реиндексация по расписанию. Требует навыков администрирования СУБД
Включает реиндексацию и другие проверки целостности. Самый долгий вариант, применяется при подозрении на повреждения данных
Как сократить время процедуры
Основные приёмы ускорения связаны с устранением узких мест. Для файловой базы — перенести файл на локальный SSD компьютера, где выполняется реиндексация, и закрыть все сторонние приложения. Для серверной базы — убедиться, что на сервере СУБД достаточно оперативной памяти и свободного дискового пространства, а также что в момент процедуры не выполняются другие ресурсоёмкие задачи.
Перед реиндексацией имеет смысл выполнить удаление помеченных объектов и свёртку больших регистров, если это планировалось: меньше данных — быстрее перестройка индексов. Для больших баз эффективнее регулярное регламентное обслуживание индексов средствами СУБД, чем редкая полная реиндексация «от аварии к аварии».
Как выбрать действие
Риски и когда нужно остановиться
Прерывание реиндексации (выключение питания, принудительное завершение процесса) может оставить базу в несогласованном состоянии. В файловом варианте это чревато повреждением файла базы, в серверном — проблемами с индексами на уровне СУБД. Именно поэтому резервная копия перед процедурой — обязательное условие, а не рекомендация.
Следует остановиться и привлечь специалиста, если в процессе появляются ошибки чтения диска, сообщения о нехватке места, либо если реиндексация многократно завершается с ошибками на одних и тех же таблицах. Повторные запуски «до победного» без анализа причины только увеличивают риск.
Как проверить результат и типичные ошибки
После завершения процедуры проверьте: база открывается без ошибок, типовые операции (проведение документов, построение отчётов) выполняются без сообщений о повреждении индексов, скорость запросов вернулась к ожидаемой. Для серверной базы дополнительно полезно посмотреть журнал СУБД на предмет ошибок за время операции.
Отдельное заблуждение — ожидание от реиндексации исправления логических ошибок в данных. Процедура перестраивает только индексы; ошибки ссылочной целостности, дубли записей и неверные итоги она не устраняет. Для таких задач используются другие режимы тестирования и исправления или специализированные обработки.
Что важно запомнить
Время реиндексации зависит от объёма данных, типа развёртывания и скорости дисков: от минут для маленькой файловой базы до многих часов для крупной серверной. Всегда делайте резервную копию, запускайте процедуру в монопольном режиме в нерабочее время, а для больших серверных баз рассмотрите регламентную выборочную реиндексацию средствами СУБД.
Частые вопросы
Можно ли работать в базе во время реиндексации?
Нет. Реиндексация через конфигуратор требует монопольного доступа: все сеансы пользователей должны быть завершены. В серверном варианте отдельные операции обслуживания индексов средствами СУБД могут выполняться при работающих пользователях, но это зависит от версии и настроек СУБД и требует оценки администратора.
Как часто нужно делать реиндексацию?
Универсальной периодичности нет. Поводом служат замедление запросов, ошибки индексов после сбоев, массовая загрузка или удаление данных. Для активно используемых серверных баз вместо редкой полной реиндексации обычно настраивают регулярное обслуживание индексов по расписанию.
Реиндексация зависла — что делать?
Сначала убедитесь, что процесс действительно остановлен: проверьте активность диска и процессора на сервере — при интенсивной работе процедура ещё идёт. Если активности нет продолжительное время, не выключайте сервер резко. Зафиксируйте состояние, по возможности завершите процесс штатно и будьте готовы восстановить базу из копии.
Чем реиндексация отличается от тестирования и исправления?
Реиндексация — это только перестройка индексов. Тестирование и исправление — комплекс проверок, включающий реиндексацию, проверку логической и ссылочной целостности, пересчёт итогов и другие операции. Полное тестирование занимает значительно больше времени.
Ускорится ли 1С после реиндексации?
Если замедление было вызвано фрагментацией или повреждением индексов — да, скорость запросов заметно улучшится. Если причина торможения в другом (неоптимальные запросы в конфигурации, нехватка ресурсов сервера, блокировки), реиндексация эффекта не даст, и потребуется отдельная диагностика.
Нужна ли реиндексация после обновления конфигурации?
Обновление конфигурации само по себе не требует реиндексации. Процедура оправдана, если обновление сопровождалось массовым изменением данных (реструктуризацией, переносом) или если после обновления появились ошибки индексов. В остальных случаях достаточно штатного регламентного обслуживания.