sys.database_files (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Contiene una fila por cada archivo de una base de datos como se almacena en la propia base de datos. Es una vista por base de datos.

Nombre de la columna Tipo de datos Descripción
file_id int Identificador del archivo dentro de la base de datos.
file_guid uniqueidentifier GUID del archivo.

NULL = La base de datos se actualizó desde una versión anterior de SQL Server (válida para SQL Server 2005 y versiones anteriores).
type tinyint Tipo de archivo:

0 = Filas
1 = Registro
2 = FILESTREAM
3 = Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
4 = Texto completo
type_desc nvarchar(60) Descripción del tipo de archivo:

ROWS
LOG
FILESTREAM
FULLTEXT
data_space_id int El valor puede ser cero o mayor que cero. Un valor de representa el archivo de registro de base de 0 datos y un valor mayor que cero representa el identificador del grupo de archivos donde se almacena este archivo de datos.
name sysname Nombre lógico del archivo de la base de datos.
physical_name nvarchar(260) Nombre del archivo del sistema operativo. Si la base de datos está hospedada por una réplica secundaria legible del grupo de disponibilidad, physical_name indica la ubicación del archivo de la base de datos de réplica principal. Para conocer la ubicación correcta de los archivos de una base de datos de réplica secundaria legible, consulte sys.sysaltfiles.
state tinyint Estado del archivo:

0 = ONLINE
1 = RESTORING
2 = RECOVERING
3 = RECOVERY_PENDING
4 = SUSPECT
5 = Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
6 = OFFLINE
7 = DEFUNCT
state_desc nvarchar(60) Descripción del estado del archivo:

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
OFFLINE
DEFUNCT
Para más información, vea Estados de los archivos.
size int Tamaño actual de archivo, en páginas de 8 KB.

0 = No aplicable.
En una instantánea de base de datos, size refleja el espacio máximo que la instantánea puede utilizar para el archivo.
En contenedores de grupos de archivos FILESTREAM, size refleja el tamaño usado actual del contenedor.
max_size int Tamaño máximo del archivo, en páginas de 8 KB:

0 = No se permite el crecimiento.
-1 = El archivo puede crecer hasta que el disco esté lleno.
268435456 = El archivo de registro puede crecer hasta un tamaño máximo de 2 TB.
En el caso de los contenedores de grupos de archivos FILESTREAM, max_size refleja el tamaño máximo del contenedor.
Bases de datos que se actualizan con un informe -1 de tamaño de archivo de registro ilimitado para el tamaño máximo del archivo de registro.
En Azure SQL Database, la suma de valores de max_size todos los archivos de datos puede ser menor que el tamaño máximo de datos de la base de datos. Use DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') para determinar el tamaño máximo de los datos.
growth int 0 = El archivo tiene un tamaño fijo y no puede crecer.

Mayor que 0 = El archivo aumentará automáticamente.
Si is_percent_growth es = 0, el incremento de crecimiento se encuentra en unidades de páginas de 8 KB, redondeadas a los 64 KB más cercanos.
Si is_percent_growth es = 1, el incremento de crecimiento se expresa como un porcentaje de número entero.
is_media_read_only bit 1 = El archivo está en medios de solo lectura.

0 = El archivo está en un medio de lectura y escritura.
is_read_only bit 1 = El archivo está marcado como de solo lectura.

0 = El archivo está marcado como de lectura y escritura.
is_sparse bit 1 = El archivo es un archivo disperso.

0 = El archivo no es un archivo disperso.
Para más información, consulte Ver el tamaño del archivo disperso de una instantánea de base de datos (Transact-SQL).
is_percent_growth bit 1 = El crecimiento del archivo es un porcentaje.

0 = Tamaño absoluto del crecimiento en páginas.
is_name_reserved bit 1 = El nombre de archivo quitado (name o physical_name) solo se puede reutilizar después de la siguiente copia de seguridad del registro. Si se quitan archivos de una base de datos, sus nombres lógicos permanecen en estado de reserva hasta la siguiente copia de seguridad de registros. Esta columna solo es relevante en el modelo de restauración completa y en el modelo de recuperación optimizado para cargas masivas de registros.
create_lsn numeric(25,0) Número de flujo de registro (LSN) en el que se creó el archivo.
drop_lsn numeric(25,0) LSN en el que se quitó el archivo.

0 = El nombre de archivo no se puede volver a utilizar.
read_only_lsn numeric(25,0) LSN en el que el grupo de archivos que contiene el archivo cambió de lectura/escritura a solo lectura (el cambio más reciente).
read_write_lsn numeric(25,0) LSN en el que el grupo de archivos que contiene el archivo cambió de solo lectura a lectura/escritura (el cambio más reciente).
differential_base_lsn numeric(25,0) Base para copias de seguridad diferenciales. Las extensiones de datos cambiadas después de este LSN se incluirán en una copia de seguridad diferencial.
differential_base_guid uniqueidentifier Identificador único de la copia de seguridad de base en la que se basará una copia de seguridad diferencial.
differential_base_time datetime Hora correspondiente a differential_base_lsn.
redo_start_lsn numeric(25,0) LSN en el que debe comenzar la siguiente puesta al día.

Es NULL a menos state = RESTORING que o .state = RECOVERY_PENDING
redo_start_fork_guid uniqueidentifier Identificador exclusivo de la bifurcación de recuperación. De first_fork_guid la siguiente copia de seguridad de registros restaurada debe coincidir con este valor. Representa el estado actual del archivo.
redo_target_lsn numeric(25,0) LSN en el que se puede detener la puesta al día en línea de este archivo.

Es NULL a menos state = RESTORING que o .state = RECOVERY_PENDING
redo_target_fork_guid uniqueidentifier Bifurcación de recuperación en que se puede recuperar el archivo. Emparejado con redo_target_lsn.
backup_lsn numeric(25,0) El LSN de los datos más recientes o de la copia de seguridad diferencial del archivo.

Nota:

Si se quitan o se recompilan índices grandes, o bien se quitan o truncar tablas grandes, el motor de base de datos difiere las cancelaciones de asignaciones de la página real, así como sus bloqueos asociados, hasta que se confirma la transacción. Las operaciones de eliminación diferidas no liberan inmediatamente el espacio asignado. Por lo tanto, los valores devueltos sys.database_files inmediatamente después de quitar o truncar un objeto grande podrían no reflejar el espacio en disco real disponible.

Permisos

Debe pertenecer al rol public . Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplos

La siguiente instrucción devuelve el nombre, el tamaño del archivo y la cantidad de espacio vacío de todos los archivos de base de datos.

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

Busque consultas de ejemplo mediante SQL Database, en Administración de espacio de archivos para bases de datos en Azure SQL Database. Puede: