sys.database_files (Transact-SQL)

Se aplica a: SQL Server (todas las versiones compatibles) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 = Solo se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.

4 = Texto completo
type_desc nvarchar(60) Descripción del tipo de archivo:

ROWS

REGISTRO

FILESTREAM

FULLTEXT
data_space_id int El valor puede ser 0 o mayor que 0. El valor 0 representa el archivo de registro de base de datos y un valor mayor que 0, el identificador del grupo de archivos donde está almacenado 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 obtener la ubicación correcta del archivo de una base de datos secundaria legible, consulte sys.sysaltfiles.
state tinyint Estado del archivo:

0 = Con conexión

1 = En restauración

2 = En recuperación

3 = RECOVERY_PENDING

4 = Sospechoso

5 = Solo se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.

6 = Sin conexión

7 = Inactivo
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 el caso de los contenedores de grupos de archivos FILESTREAM, el tamaño 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 crece hasta que el disco esté lleno.

268435456 = El archivo de registro aumentará de tamaño 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.

Tenga en cuenta que las bases de datos que se actualizan con un tamaño de archivo de registro ilimitado notificarán -1 para el tamaño máximo del archivo de registro.

En Azure SQL Database, la suma de max_size valores de 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.
Crecimiento int 0 = El archivo tiene un tamaño fijo y no puede crecer.

>0 = El archivo crecerá automáticamente.

Si is_percent_growth = 0, el aumento de crecimiento es en unidades de páginas de 8 KB, redondeado a los 64 KB más próximos.

Si is_percent_growth = 1, el aumento de crecimiento se expresa como un porcentaje numérico 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 obtener más información, vea 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 del archivo quitado (name o physical_name) solo se podrá volver a utilizar 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 que corresponde 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 que state = RESTORING o state = RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Identificador exclusivo de la bifurcación de recuperación. El first_fork_guid de 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 que state = RESTORING o state = RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier Bifurcación de recuperación en que se puede recuperar el archivo. Se empareja 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

Al quitar o recompilar índices grandes, o quitar o truncar tablas grandes, el motor de base de datos aplaza las desasignaciones de página reales y sus bloqueos asociados, hasta después de que la transacción se confirme. Las operaciones de eliminación diferidas no liberan inmediatamente el espacio asignado. Por tanto, los valores devueltos por sys.database_files inmediatamente después de quitar o truncar un objeto grande pueden no reflejar el espacio de 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 para cada archivo 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 Administrar espacio de archivos para bases de datos en Azure SQL Database. Puede:

Pasos siguientes

Obtenga más información sobre los conceptos relacionados en los artículos siguientes: