Рост базы BPMOnline

В процессе работы над конфигурацией, размер базы подрастает с каждой компиляцией, я так понимаю.
Например, на сегодня размер таблицы в некоторой конфигурации SysSchemaInSolution более 2Гб, SysSchemaSource более 800Мб.
Соответственно "пустая" база начинает "весить" более 3Гб, что естественно замедляет резервное копирование, например, да и просто ест много места.
Вопрос такой - можно ли безболезненно неким методом заставить базу "похудеть"? Понятно что при этом будет потеряна некая информация об истории изменения объектов конфигурации (нужна ли она кстати?)

Нравится

4 комментария

Здравствуйте Александр!

Для начала Вам необходимо выяснить сколько занимает Ваша база, имеется ввиду сам файл базы (.mdf) и журнал логов (.ldf), это видно в свойствах БД на вкладке Файлы (Files). Если у Вас файл базы или логов имеет пустое место, то его можно очистить при помощи команды Shrink

Для ознакомления Вам помогу ресурсы:
1. http://www.sql.ru/forum/3129/ochistka-logov
2. http://itmemo.ru/2011/12/ochistka-bolshih-faylov-logov-ldf-v-mssql/

С уважением,
Дмитрий Ковшевацкий
Специалист службы поддержки II линии
Группа компаний Terrasoft

Дмитрий, вопрос не в Shrink. С этого я начал поиск причин роста.
Пустого места в базе минимум - общий объем 3 с чем-то Гб, после Shrink. Лог уменьшен почти до нуля. Данных нет - это база для разработки, то есть только тестовая информация по паре записей в разделах. Размер таблиц, которые я привел выше - немаленький. Если активно редактировать визуальные формы, например, размер подрастает.

В таблице SysSchemaInSolution хранятся версии изменений схем, можно удалить уже старые версии.
Попробуйте скрипт, который оставляет только 3 последние версии схем.

CREATE PROCEDURE [dbo].[tsp_DeleteOldSchemaVersions]
AS
BEGIN
SET NOCOUNT ON

DELETE FROM [SysSchemaInSolution]
WHERE [Id] IN (
Select [OldSchemaVersion].[Id]
From [SysSchemaInSolution] [OldSchemaVersion]
Where [OldSchemaVersion].[Version] NOT IN (
Select TOP 3 MaxVersion.[Version]
From [SysSchemaInSolution] [MaxVersion]
Where [MaxVersion].[SysSchemaId] = [OldSchemaVersion].[SysSchemaId]
And [MaxVersion].[SysSolutionId] = [OldSchemaVersion].[SysSolutionId]
Order By [MaxVersion].[Version] DESC))
END

Дмитрий, спасибо!
3,8 Гб превращаются в 0,8 Гб что не может не радовать :smile:

Показать все комментарии