В процессе работы над конфигурацией, размер базы подрастает с каждой компиляцией, я так понимаю.
Например, на сегодня размер таблицы в некоторой конфигурации SysSchemaInSolution более 2Гб, SysSchemaSource более 800Мб.
Соответственно "пустая" база начинает "весить" более 3Гб, что естественно замедляет резервное копирование, например, да и просто ест много места.
Вопрос такой - можно ли безболезненно неким методом заставить базу "похудеть"? Понятно что при этом будет потеряна некая информация об истории изменения объектов конфигурации (нужна ли она кстати?)
Нравится
Здравствуйте Александр!
Для начала Вам необходимо выяснить сколько занимает Ваша база, имеется ввиду сам файл базы (.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: