В миналото съм забелязвал, че свиването на файла с данни на по-малки части може да бъде по-ефективно, отколкото да се опитвате да го свиете наведнъж. Ако се опитате да използвате подобна стратегия, бихте искали да направите нещо като по-долу:
DECLARE @targetSize AS INT = 388000;
DECLARE @desiredFinalSize AS INT = 362000;
DECLARE @increment AS INT = 300;
DECLARE @sql AS VARCHAR(200);
WHILE @targetSize > @desiredFinalSize
BEGIN
SET @sql = 'DBCC SHRINKFILE(''MyDataFileName'', ' + CAST(@targetSize AS VARCHAR(10)) + ');'
SELECT @sql;
EXEC(@sql);
SET @targetSize = @targetSize - @increment;
END