Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

récupérer de l'espace après avoir déplacé les index vers le groupe de fichiers

J'ai remarqué dans le passé que réduire le fichier de données en petits morceaux peut être plus efficace que d'essayer de le réduire en une seule fois. Si vous deviez essayer d'utiliser une stratégie similaire, vous voudriez faire quelque chose comme ci-dessous :

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