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.