При переходе с файловой версии информационной базы 1Cv8.1CD на клиент-серверный вариант под управлением MS SQL Server перед системными администраторами и специалистами 1С встает ключевой вопрос сайзинга: сколько дискового пространства займет база сразу после загрузки из дампа .dt и какой коэффициент роста необходимо заложить при проектировании дисковой подсистемы и RAID-массивов. Проанализируем физические различия хранения данных, выясним причину изменения объема и разберем практические шаги по расчету места.
Файловая база 1Cv8.1CD и база данных MS SQL Server принципиально различаются по внутреннему устройству. В файловом формате платформа 1С использует собственные механизмы сжатия и компоновки записей. При загрузке информации через файл выгрузки .dt данные преобразуются в стандартные типы СУБД (nchar, numeric, datetime, uniqueidentifier). Рассмотрим ключевые факторы, влияющие на итоговый объем:
.mdf и .ndf.1CD индексы хранятся существенно компактнее.1Cv8.1CD могут оставаться свободные неиспользуемые страницы после обновлений или удаления данных. В таком случае оптимизированная файловая база объемом 3 Гб после загрузки в SQL развернется в чистые таблицы, однако их объем все равно превысит исходный из-за структуры индексов.Опыт администраторов и практические замеры показывают, что одинаковый объем в файле и СУБД — крайне редкое исключение. Разберем формулу расчета необходимого пространства:
.mdf после загрузки обычно больше исходного компактного 1CD в 1,5–3 раза. Таким образом, файловая база объемом 3 Гб после выполнения ТИИ и сжатия в MS SQL Server займет от 4,5 до 9 Гб только под данные и индексы.Чтобы избежать многократного неконтролируемого разрастания файлов базы и системных баз данных при загрузке .dt, выполним следующие шаги:
.dt представляет собой массивную непрерывную вставку сотен тысяч записей. Если оставить модель Full (Полная), журнал транзакций зафиксирует каждую строку, и файл .ldf моментально раздуется до 15–30 Гб. Переводить базу в модель Full следует только после завершения импорта и создания первой полной резервной копии..mdf и .ldf по умолчанию (обычно несколько мегабайт). Задайте начальный размер файла данных с учетом коэффициента (например, сразу 8–10 Гб для трехгигабайтной файловой базы) и размер журнала транзакций (не менее 2–4 Гб). Это исключит фрагментацию на уровне файловой системы диска из-за сотен мелких операций авторасширения..ldf.tempdb. Убедимся, что на диске, где расположен tempdb, свободно не менее двойного объема исходной базы данных, иначе процесс завершится аварийной ошибкой переполнения диска.Рассмотрим вопрос влияния версии СУБД на дисковый объем. Сами по себе базовые типы данных в SQL Server 2014 и 2016 одинаковы, однако существует важное различие в механизмах сжатия:
PAGE и ROW compression) поддерживалось исключительно в редакции Enterprise..mdf на 40–60% без существенной потери производительности на современных процессорах.Для небольших информационных баз с исходным размером 3 Гб ограничение MS SQL Server Express (10 Гб на один файл базы данных) позволяет эксплуатировать систему без покупки коммерческих лицензий, если включена простая модель восстановления, регулярно обслуживаются индексы и вынесены присоединенные файлы из тела базы данных в тома на диске.
После завершения загрузки проверим реальное распределение дискового пространства между строками данных и индексами. Для этого выполним в среде SQL Server Management Studio системную процедуру:
USE [ИмяВашейБазы];
GO
EXEC sp_spaceused;
GO
Полученный отчет покажет точный размер данных (data), объем служебных индексов (index_size) и нераспределенное пространство (unused), на основании которых администратор может составить точный прогноз масштабирования серверов.