Если ваша база 1С на MS SQL Server тормозит, зависает или требует ежедневной перезагрузки — скорее всего, проблема в фрагментированных индексах и устаревшей статистике. Это особенно актуально при активной работе: проводка документов, печать отчётов, обмен с сайтом и т.п.
Хорошая новость: всё это можно автоматизировать. Достаточно один раз настроить ночное задание — и база будет «сама чиниться» без участия человека.
Каждую ночь в нерабочее время:
Если не установлен — скачайте бесплатно с официального сайта Microsoft.
Без неё задания не будут работать. Проверьте в «Службах Windows».
SQL Server Agent → Jobs.1C_Nightly_Maintenance.Во вкладке 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
Во вкладке Schedules создайте новое — например, ежедневно в 02:00 ночи.
Теперь каждую ночь MS SQL будет автоматически оптимизировать вашу базу 1С.
Если не хотите писать код — используйте встроенный 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!).
Комментарии
Пока нет комментариев. Будьте первым!