Категории

Как автоматически перестраивать индексы в MS SQL для 1С ночью

31.12.2025 | Статья из категории: 1С

Если ваша база 1С на MS SQL Server тормозит, зависает или требует ежедневной перезагрузки — скорее всего, проблема в фрагментированных индексах и устаревшей статистике. Это особенно актуально при активной работе: проводка документов, печать отчётов, обмен с сайтом и т.п.

Хорошая новость: всё это можно автоматизировать. Достаточно один раз настроить ночное задание — и база будет «сама чиниться» без участия человека.

Зачем это нужно?

Что делаем?

Каждую ночь в нерабочее время:

  1. Обновляем статистику по всем таблицам.
  2. Перестраиваем все индексы.

Пошаговая инструкция

1. Откройте SQL Server Management Studio (SSMS)

Если не установлен — скачайте бесплатно с официального сайта Microsoft.

2. Убедитесь, что запущена служба SQL Server Agent

Без неё задания не будут работать. Проверьте в «Службах Windows».

3. Создайте новое задание (Job)

  1. В SSMS: раскройте SQL Server Agent → Jobs.
  2. Правой кнопкой → New Job…
  3. Назовите, например: 1C_Nightly_Maintenance.

4. Добавьте шаг выполнения

Во вкладке Steps нажмите New… и вставьте следующий SQL-скрипт (не забудьте заменить Your_1C_Database_Name на имя вашей базы!):

-- ЗАМЕНИТЕ 'Your_1C_Database_Name' на реальное имя вашей базы!
USE [Your_1C_Database_Name];
GO

-- Обновить статистики
EXEC sp_updatestats;
GO

-- Перестроить все индексы
DECLARE @TableName VARCHAR(255)
DECLARE @SQL NVARCHAR(500)

DECLARE TableCursor CURSOR FOR
SELECT TABLE_SCHEMA + '.' + TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'

OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @SQL = 'ALTER INDEX ALL ON ' + @TableName + ' REBUILD'
    EXEC sp_executesql @SQL
    FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor
DEALLOCATE TableCursor
GO

5. Настройте расписание

Во вкладке Schedules создайте новое — например, ежедневно в 02:00 ночи.

6. Готово!

Теперь каждую ночь MS SQL будет автоматически оптимизировать вашу базу 1С.

Важные предупреждения

Альтернатива: Maintenance Plan

Если не хотите писать код — используйте встроенный Maintenance Plan Wizard в SSMS: Management → Maintenance Plans → New Maintenance Plan.

Выберите задачи: Rebuild Index Task и Update Statistics Task. Назначьте расписание — и всё готово.

Почему это работает?

Этот «костыль» решает 80% проблем с производительностью 1С на MS SQL. Многие компании годами страдают от тормозов, не зная, что нужно просто… почистить индексы раз в сутки.

Можно ли на этом зарабатывать?

Да! Предложите услугу «Аудит и настройка автоматической оптимизации 1С» за 3000–5000 ₽. Это:

Удачи в оптимизации! А если база всё ещё тормозит — смотрите на диск (SSD?), память (16+ ГБ?) и настройки SQL (MAXDOP = 1!).

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0


кто я | о блоге

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA