Trước đây tôi đã nhận thấy rằng việc thu nhỏ tệp dữ liệu thành các phần nhỏ hơn có thể hiệu quả hơn việc cố gắng thu nhỏ tất cả trong một lần. Nếu bạn đang cố gắng sử dụng một chiến lược tương tự thì bạn muốn làm điều gì đó như sau:
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