Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como reduzir o tamanho de um arquivo de dados no SQL Server (T-SQL)


No SQL Server, ao usar o Transact-SQL, reduzir o tamanho de um arquivo de dados requer uma sintaxe diferente para aumentá-lo. Para reduzir um tamanho de arquivo usando T-SQL, use o DBCC SHRINKFILE comando e forneça o nome do arquivo de dados junto com o tamanho para o qual você gostaria de reduzi-lo.

Abaixo estão exemplos de redução do tamanho de arquivo de um arquivo de dados no SQL Server usando T-SQL.


Exemplo básico


Aqui está um exemplo básico de redução do tamanho de um arquivo de dados usando T-SQL:
USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2, 5);
GO

Isso é provavelmente bastante auto-explicativo. Primeiro, mudamos para o banco de dados cujo arquivo de dados queremos alterar. Em seguida, usamos DBCC SHRINKFILE para especificar qual arquivo de dados e para qual tamanho de arquivo reduzi-lo. Isso está em MB, então nosso exemplo reduzirá para 5 MB.

Reduza-o para o tamanho de arquivo padrão


Se você não especificar um tamanho de arquivo, o arquivo será reduzido ao tamanho padrão. O tamanho padrão é o tamanho especificado quando o arquivo foi criado.

Exemplo:
USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2);
GO

Truncar o arquivo de dados


Você pode truncar o arquivo de dados usando o TRUNCATEONLY argumento.

Aqui está um exemplo:
USE Solutions;  
GO  
DBCC SHRINKFILE ('Solutions', TRUNCATEONLY);
GO

Esvaziar um arquivo de dados


Você também pode esvaziar um arquivo de dados usando o EMPTYFILE argumento.

Exemplo:
DBCC SHRINKFILE (Solutions2, EMPTYFILE);  
GO 

Isso migra todos os dados do arquivo especificado para outros arquivos no mesmo grupo de arquivos. Portanto, você precisará ter certeza de que este não é o único arquivo no grupo de arquivos (caso contrário, você receberá um erro). EmptyFile também garante que nenhum dado novo será adicionado ao arquivo.

Depois de esvaziar o arquivo, você pode removê-lo se é isso que deseja fazer. Aqui está um exemplo de remoção do arquivo esvaziado:
ALTER DATABASE Solutions  
REMOVE FILE Solutions2;  
GO 

E podemos verificar se ele foi removido executando o seguinte:
USE Solutions;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO