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

Come aggiungere un filegroup a un database di SQL Server (T-SQL)

Come minimo, un database di SQL Server dispone di due file del sistema operativo; il file di dati e il file di registro.

Il file di dati contiene i dati effettivi nel database, nonché oggetti come tabelle, indici, stored procedure e viste. Il file di registro contiene le informazioni necessarie per recuperare tutte le transazioni nel database.

Quando crei un database utilizzando le opzioni predefinite, vengono creati entrambi questi file. Questi file vengono creati nel filegroup principale. Questo filegroup contiene il file di dati primario e tutti i file secondari che non vengono inseriti in altri filegroup. Quindi il filegroup primario è il filegroup predefinito (a meno che non venga modificato utilizzando ALTER DATABASE dichiarazione).

Quando crei più file di dati, hai anche la possibilità di raggrupparli in un filegroup definito dall'utente. Ciò ti consente di raggruppare i file in modo logico nel proprio filegroup che hai creato. Questo filegroup esisterà quindi in aggiunta al filegroup primario. Gli oggetti del database rimarranno rimarranno all'interno del filegroup principale.

Questo articolo mostra come creare un filegroup definito dall'utente e aggiungervi alcuni file di dati.

Esempio

Ecco un esempio di utilizzo di T-SQL per aggiungere un filegroup a un database esistente:

USE master
GO

ALTER DATABASE Solutions  
ADD FILEGROUP Solutions1Filegroup1;  
GO  
ALTER DATABASE Solutions   
ADD FILE   
(  
    NAME = Solutions_dat_2,  
    FILENAME = 'D:\mssql\data\Solutions_dat2.ndf',  
    SIZE = 10MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5%  
),  
(  
    NAME = Solutions_dat_3,  
    FILENAME = 'D:\mssql\data\Solutions_dat3.ndf',  
    SIZE = 10MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5% 
)  
TO FILEGROUP Solutions1Filegroup1;  
GO

Questo esempio crea un filegroup chiamato Solutions1Filegroup1 e vi aggiunge due file di dati. Specifichiamo le solite cose per ogni file, come il nome logico, il percorso fisico del file, la dimensione, ecc.

Il presupposto con questo esempio è che esiste già un file di dati chiamato Solutions_dat_1 . Pertanto nomiamo questi file allo stesso modo, ma incrementiamo semplicemente il numero per ciascun file.

Inoltre, in questo esempio chiamiamo il filegroup come se fosse solo uno dei tanti. Possiamo creare più filegroup se necessario e, se lo facciamo, probabilmente vorremo una convenzione di denominazione che renda facile distinguere tra ciascun filegroup.

Visualizza i Filegroup

È possibile visualizzare i filegroup per un determinato database eseguendo una query su sys.filegroups vista catalogo.

Esempio:

USE Solutions;
SELECT name, type_desc
FROM sys.filegroups;

Risultato:

name                  type_desc     
--------------------  --------------
PRIMARY               ROWS_FILEGROUP
Solutions1Filegroup1  ROWS_FILEGROUP

Puoi anche utilizzare un asterisco (*) per restituire tutte le righe, se necessario.