Иногда файлы БД MS SQL на сервере Витакарты разрастаются до больших размеров и, как оказалось, в основном, тому виной лог транзакций. Чтобы сжать лог транзакций можно использовать следующий скрипт:

USE AKUZDB
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE AKUZDB
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (2, 1);  -- here 2 is the file ID for trasaction log file,you can also mention the log file name (dbname_log)
GO
-- Reset the database recovery model.
ALTER DATABASE AKUZDB
SET RECOVERY FULL;
GO

Напоминаю, что перед тем, как вы будете запускать этот скрипт — желательно сделать бэкап БД.

ПРИМЕЧАНИЕ: Обратите внимание, что сама по себе процедура сжатия лога транзакций не совсем корректна с точки зрения правильного администрирования БД MSSQL. Лог транзакций растет только, если в настройках базы данных выбрана полная модель восстановления, которая в свою очередь требует периодическое снятие бэкапа лога транзакций. Если же Вы не делаете периодического бэкапа лога транзакций, то советую рассмотреть вариант перевода БД на простую модель восстановления. При простой модели лог транзакций расти не будет и следовательно его не нужно будет шринкать. Но, плохой стороной простой модели восстановления будет то, что при сбое Вы сможете восстановить БД только из последнего полного бэкапа (Частое снятие полного бэкапа однозначно будет влиять на производительность, и отсюда следует, что Вы не сможете держать например ежечасный бэкап БД, вот тут и приходит на помощь полная модель восстановления). При полной модели восстановления и при правильно настроенном бэкапе БД есть возможность восстановить БД на время последнего снятия бэкапа лога транзакций. Например, при следующей схеме снятия бэкапа, в случае аварии, Вы потеряете информацию только в пределах одного часа, не более: снятие полного бэкапа (раз в неделю), разностного (раз в день) и бэкапа лога транзакций (раз в час).