sys.database_files (Transact-SQL)

S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Contient une ligne par fichier d'une base de données telle qu'elle est stockée dans la base de données. C'est une vue par base de données.

Nom de la colonne Type de données Description
file_id int ID du fichier dans la base de données.
file_guid uniqueidentifier GUID du fichier

NULL = Base de données a été mise à niveau à partir d’une version antérieure de SQL Server (valide pour SQL Server 2005 et versions antérieures).
type tinyint Type de fichier :

0 = Lignes

1 = journal

2 = FILESTREAM

3 = Identifié à des fins d’information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

4 = Texte intégral
type_desc nvarchar(60) Description du type de fichier :

ROWS

LOG

FILESTREAM

FULLTEXT
data_space_id int La valeur peut être supérieure ou égale à 0. La valeur 0 représente le fichier journal de la base de données et une valeur supérieure à 0 représente l'ID du groupe de fichiers où ce fichier de données est stocké.
name sysname Nom logique du fichier dans la base de données.
physical_name nvarchar(260) Nom de fichier du système d'exploitation. Si la base de données est hébergée par un réplica secondaire lisible par un groupe de disponibilité, physical_name indique l’emplacement du fichier de la base de données du réplica principal. Pour l’emplacement de fichier correct d’une base de données secondaire lisible, interrogez sys.sysaltfiles.
state tinyint État du fichier :

0 = ONLINE

1 = RESTORING

2 = RECOVERING

3 = RECOVERY_PENDING

4 = SUSPECT

5 = Identifié à des fins d’information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

6 = OFFLINE

7 = DEFUNCT
state_desc nvarchar(60) Description de l'état du fichier :

ONLINE

RESTORING

RECOVERING

RECOVERY_PENDING

SUSPECT

OFFLINE

DEFUNCT

Pour plus d’informations, consultez États des fichiers.
size int Taille actuelle du fichier (en pages de 8 Ko)

0 = Non applicable

Dans le cas d'un instantané de base de données, size reflète l'espace maximal que celle-ci peut utiliser pour le fichier.

Pour les conteneurs de groupe de fichiers FILESTREAM, la taille reflète la taille utilisée actuelle du conteneur.
max_size int Taille maximale du fichier, en pages de 8 Ko :

0 = aucune croissance n'est autorisée.

-1 = Le fichier peut croître tant que le disque n'est pas saturé.

268435456 = Le fichier journal peut croître pour atteindre une taille maximale de 2 To.

Pour les conteneurs de groupe de fichiers FILESTREAM, max_size reflète la taille maximale du conteneur.

Notez que les bases de données mises à niveau avec une taille de fichier journal illimitée indiquent -1 pour la taille maximale du fichier journal.

Dans Azure SQL base de données, la somme des valeurs max_size pour tous les fichiers de données peut être inférieure à la taille maximale des données de la base de données. Permet de DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') déterminer la taille maximale des données.
Croissance int 0 = la taille du fichier est fixe et celui-ci ne croît pas.

>0 = Le fichier augmente automatiquement.

Si is_percent_growth = 0, l'incrément de croissance est en unités de pages de 8 Ko, arrondies aux 64 kilo-octets les plus proches.

Si is_percent_growth a pour valeur 1, l'incrément de croissance est exprimé sous la forme d'un pourcentage à nombre entier.
is_media_read_only bit 1 = le fichier se trouve sur un support en lecture seule.

0 = Le fichier se trouve sur un support en lecture-écriture.
is_read_only bit 1 = le fichier est marqué comme étant accessible en lecture seule.

0 = Le fichier est marqué en lecture-écriture.
is_sparse bit 1 = le fichier est un fichier partiellement alloué.

0 = le fichier n'est pas un fichier partiellement alloué.

Pour plus d’informations, consultez Afficher la taille du fichier partiellement alloué d’un instantané de base de données (Transact-SQL).
is_percent_growth bit 1 = la croissance du fichier est exprimée en pourcentage.

0 = importance de croissance absolue en pages.
is_name_reserved bit 1 = Le nom du fichier supprimé (name ou physical_name) ne peut être réutilisé qu'après la prochaine sauvegarde du journal. Lorsque des fichiers sont supprimés d'une base de données, les noms logiques restent réservés jusqu'à la prochaine sauvegarde du journal. Cette colonne concerne uniquement le mode de restauration complète et le mode de récupération utilisant les journaux de transactions.
create_lsn numeric(25,0) Numéro séquentiel dans le journal (LSN) auquel le fichier a été créé.
drop_lsn numeric(25,0) LSN auquel le fichier a été supprimé.

0 = Le nom de fichier n'est pas disponible pour réutilisation.
read_only_lsn numeric(25,0) LSN auquel le groupe de fichiers qui contient le fichier est passé de l'état lecture/écriture à l'état lecture seule (changement le plus récent).
read_write_lsn numeric(25,0) LSN auquel le groupe de fichiers qui contient le fichier est passé de l'état lecture seule à l'état lecture/écriture (changement le plus récent).
differential_base_lsn numeric(25,0) Base des sauvegardes différentielles. Les étendues de données modifiées après ce LSN sont incluses dans une sauvegarde différentielle.
differential_base_guid uniqueidentifier Identificateur unique de la sauvegarde de base sur laquelle repose une sauvegarde différentielle.
differential_base_time datetime Heure correspondant à differential_base_lsn.
redo_start_lsn numeric(25,0) LSN auquel doit démarrer la restauration par progression suivante.

A pour valeur NULL sauf si state a pour valeur RESTORING ou RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Identificateur unique du branchement de récupération. Le first_fork_guid de la prochaine sauvegarde de fichier journal restaurée doit correspondre à cette valeur. Cela représente l'état actuel du fichier.
redo_target_lsn numeric(25,0) LSN auquel peut s'arrêter la restauration par progression en ligne sur ce fichier.

A pour valeur NULL sauf si state a pour valeur RESTORING ou RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier Fourchette de récupération dans laquelle le fichier peut être récupéré. Associé à redo_target_lsn.
backup_lsn numeric(25,0) LSN de la sauvegarde de données ou différentielle du fichier la plus récente.

Notes

Lorsque vous supprimez ou régénérez des index volumineux, ou que vous supprimez ou tronquez de grandes tables, le moteur de base de données reporte les désallocations de page réelles et leurs verrous associés, jusqu’à ce que la transaction soit validée. Les opérations de suppression différées ne libèrent pas immédiatement l'espace alloué. Par conséquent, les valeurs retournées par sys.database_files immédiatement après avoir supprimé ou tronqué un objet volumineux ne reflètent pas l'espace disque réel.

Autorisations

Nécessite l'appartenance au rôle public . Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemples

L’instruction suivante retourne le nom, la taille du fichier et la quantité d’espace vide pour chaque fichier de base de données.

SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 
   AS EmptySpaceInMB
FROM sys.database_files;

Recherchez des exemples de requêtes à l’aide de SQL Database, dans Gérer l’espace de fichiers pour les bases de données dans Azure SQL Base de données. Vous pouvez :

Étapes suivantes

En savoir plus sur les concepts associés dans les articles suivants :