Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come ridurre le dimensioni di un file di dati in SQL Server (T-SQL)

In SQL Server, quando si usa Transact-SQL, la riduzione delle dimensioni di un file di dati richiede una sintassi diversa per aumentarlo. Per ridurre le dimensioni di un file utilizzando T-SQL, utilizzare DBCC SHRINKFILE comando e fornisci il nome del file di dati insieme alla dimensione a cui desideri ridurlo.

Di seguito sono riportati esempi di riduzione delle dimensioni di un file di dati in SQL Server utilizzando T-SQL.

Esempio di base

Ecco un esempio di base di riduzione delle dimensioni di un file di dati utilizzando T-SQL:

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2, 5);
GO

Questo è probabilmente abbastanza autoesplicativo. Innanzitutto, passiamo al database di cui vogliamo modificare il file di dati. Quindi utilizziamo DBCC SHRINKFILE per specificare a quale file di dati e a quale dimensione ridurlo. Questo è in MB, quindi il nostro esempio lo ridurrà a 5 MB.

Riducilo alla dimensione del file predefinita

Se non specifichi una dimensione del file, il file verrà ridotto alla dimensione predefinita. La dimensione predefinita è la dimensione specificata al momento della creazione del file.

Esempio:

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2);
GO

Tronca il file di dati

Puoi troncare il file di dati utilizzando TRUNCATEONLY argomento.

Ecco un esempio:

Soluzioni
USE Solutions;  
GO  
DBCC SHRINKFILE ('Solutions', TRUNCATEONLY);
GO

Svuota un file di dati

Puoi anche svuotare un file di dati usando EMPTYFILE argomento.

Esempio:

DBCC SHRINKFILE (Solutions2, EMPTYFILE);  
GO 

Questo migra tutti i dati dal file specificato ad altri file nello stesso filegroup. Pertanto, dovrai assicurarti che questo non sia l'unico file nel filegroup (altrimenti riceverai un errore). EmptyFile ti assicura inoltre che non verranno aggiunti nuovi dati al file.

Dopo aver svuotato il file, puoi rimuoverlo se è quello che vuoi fare. Ecco un esempio di rimozione del file svuotato:

ALTER DATABASE Solutions  
REMOVE FILE Solutions2;  
GO 

E possiamo verificare che sia stato rimosso eseguendo quanto segue:

Soluzioni
USE Solutions;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO