V minulosti jsem si všiml, že zmenšování datového souboru po menších kouscích může být efektivnější, než se snažit zmenšit vše najednou. Pokud byste se pokusili použít podobnou strategii, pak byste chtěli udělat něco jako níže:
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