sys.database_files (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 = La 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é à titre 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 égale à zéro ou supérieure à zéro. Une valeur représentant le fichier journal de 0 base de données, et une valeur supérieure à zéro 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 obtenir l’emplacement de fichier approprié 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é à titre 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, size 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 jusqu’à ce que le disque soit plein.
268435456 = Le fichier journal peut atteindre une taille maximale de 2 To.
Pour les conteneurs de groupes de fichiers FILESTREAM, max_size reflète la taille maximale du conteneur.
Bases de données mises à niveau avec un rapport -1 de taille de fichier journal illimité pour la taille maximale du fichier journal.
Dans Azure SQL Database, la somme des valeurs de tous les fichiers de max_size données peut être inférieure à la taille maximale des données pour la base de données. Utilisez DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') pour déterminer la taille maximale des données.
growth int 0 = la taille du fichier est fixe et celui-ci ne croît pas.

Supérieur à 0 = Le fichier augmente automatiquement.
Si is_percent_growth = 0, l’incrément de croissance est en unités de 8 pages Ko, arrondi à la plus proche 64 Ko.
Si is_percent_growth = 1, l’incrément de croissance est exprimé sous la forme d’un pourcentage de 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 = Nom de fichier supprimé (name ou physical_name) est réutilisable uniquement après la sauvegarde du journal suivant. 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.

Est NULL saufRESTORING = state ou .state = RECOVERY_PENDING
redo_start_fork_guid uniqueidentifier Identificateur unique du branchement de récupération. La first_fork_guid sauvegarde du journal suivante 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.

Est NULL saufRESTORING = state ou .state = 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 reconstruisez des index volumineux ou lorsque vous supprimez ou tronquez des tables volumineuses, le moteur de base de données diffère les désallocations des pages actives et de leurs blocs 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 sys.database_files immédiatement après la suppression ou la troncation d’un objet volumineux peuvent ne pas refléter l’espace disque réel disponible.

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 utilisant SQL Database, dans Gérer l’espace de fichiers pour les bases de données dans Azure SQL Database. Vous pouvez :