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

Comment ajouter un groupe de fichiers à une base de données SQL Server (T-SQL)

Au minimum, une base de données SQL Server possède deux fichiers de système d'exploitation; le fichier de données et le fichier journal.

Le fichier de données contient les données réelles de la base de données, ainsi que des objets tels que des tables, des index, des procédures stockées et des vues. Le fichier journal contient les informations nécessaires pour récupérer toutes les transactions dans la base de données.

Lorsque vous créez une base de données à l'aide des options par défaut, ces deux fichiers sont créés. Ces fichiers sont créés dans le groupe de fichiers principal. Ce groupe de fichiers contient le fichier de données principal et tous les fichiers secondaires qui ne sont pas placés dans d'autres groupes de fichiers. Ainsi, le groupe de fichiers principal est le groupe de fichiers par défaut (sauf s'il est modifié à l'aide de ALTER DATABASE déclaration).

Lorsque vous créez plusieurs fichiers de données, vous avez également la possibilité de les regrouper dans un groupe de fichiers défini par l'utilisateur. Cela vous permet de regrouper logiquement les fichiers dans leur propre groupe de fichiers que vous avez créé. Ce groupe de fichiers existera alors en plus du groupe de fichiers principal. Les objets de la base de données resteront dans le groupe de fichiers principal.

Cet article explique comment créer un groupe de fichiers défini par l'utilisateur et y ajouter des fichiers de données.

Exemple

Voici un exemple d'utilisation de T-SQL pour ajouter un groupe de fichiers à une base de données existante :

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

Cet exemple crée un groupe de fichiers appelé Solutions1Filegroup1 et y ajoute deux fichiers de données. Nous spécifions les éléments habituels pour chaque fichier, tels que son nom logique, son chemin de fichier physique, sa taille, etc.

L'hypothèse avec cet exemple est qu'il existe déjà un fichier de données appelé Solutions_dat_1 . Par conséquent, nous nommons ces fichiers de la même manière, mais incrémentons simplement le numéro pour chaque fichier.

De plus, dans cet exemple, nous nommons le groupe de fichiers comme s'il n'en était qu'un parmi tant d'autres. Nous pouvons créer plusieurs groupes de fichiers si nécessaire, et si nous le faisons, nous voudrons probablement une convention de dénomination qui facilite la distinction entre chaque groupe de fichiers.

Afficher les groupes de fichiers

Vous pouvez afficher les groupes de fichiers pour une base de données donnée en interrogeant le sys.filegroups vue du catalogue.

Exemple :

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

Résultat :

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

Vous pouvez également utiliser un astérisque (*) pour renvoyer toutes les lignes si nécessaire.