sql >> Base de Datos >  >> RDS >> Sqlserver

recuperar espacio después de mover índices al grupo de archivos

He notado en el pasado que reducir el archivo de datos en partes más pequeñas puede ser más efectivo que tratar de reducirlo todo de una sola vez. Si intentara usar una estrategia similar, entonces querría hacer algo como lo siguiente:

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