sys.database_files (Transact-SQL)

Применимо к:SQL ServerAzure SQL DatabaseAzure Sql Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)SQL Endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Содержит по одной строке для каждого из файлов базы данных, в которых она хранится. Это представление на каждую базу данных.

Имя столбца Тип данных Описание:
file_id int Идентификатор файла в базе данных.
file_guid uniqueidentifier Идентификатор GUID файла.

NULL = база данных была обновлена с более ранней версии SQL Server (допустима для SQL Server 2005 и более ранних версий).
тип tinyint Тип файла:

0 = строки

1 = журнал.

2 = FILESTREAM.

3 = определено только для информационных целей. Не поддерживается. Совместимость с будущими версиями не гарантируется.

4 = полный текст
type_desc nvarchar(60) Описание типа файла:

СТРОКИ

ЖУРНАЛ

FILESTREAM

FULLTEXT
data_space_id int Значение может быть больше или равно 0. Значение, равное 0, представляет файл журнала базы данных, а значение больше 0 представляет идентификатор файловой группы, в которой хранится этот файл данных.
name sysname Логическое имя файла в базе данных.
physical_name nvarchar(260) Имя файла в операционной системе. Если база данных размещена доступной для чтения вторичной репликой группы доступности, physical_name указывает расположение файла базы данных-источника реплики. Для правильного расположения файла доступной для чтения базы данных-получателя запросите sys.sysaltfiles.
state tinyint Состояние файла:

0 = ONLINE

1 = RESTORING

2 = RECOVERING

3 = RECOVERY_PENDING

4 = SUSPECT

5 = определено только для информационных целей. Не поддерживается. Совместимость с будущими версиями не гарантируется.

6 = OFFLINE

7 = DEFUNCT
state_desc nvarchar(60) Описание состояния файла:

ONLINE

RESTORING

RECOVERING

RECOVERY_PENDING

SUSPECT

OFFLINE

DEFUNCT

Дополнительные сведения см. в разделе Состояния файлов.
size int Текущий размер файла в страницах по 8 КБ.

0 = не определено.

Для моментального снимка базы данных аргумент size отражает максимальное пространство, которое моментальный снимок может использовать только для файла.

Для контейнеров файловой группы FILESTREAM размер отражает текущий используемый размер контейнера.
max_size int Максимальный размер файла в страницах по 8 КБ:

0 = Увеличение размера запрещено.

-1 = размер файла может увеличиваться до полного заполнения диска.

268435456 = файл журнала может увеличиваться до 2 ТБ.

Для контейнеров файловой группы FILESTREAM max_size отражает максимальный размер контейнера.

Обратите внимание, что базы данных, обновляемые с неограниченным размером файла журнала, будут сообщать -1 для максимального размера файла журнала.

В Базе данных SQL Azure сумма значений max_size для всех файлов данных может быть меньше максимального размера данных для базы данных. Используется DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') для определения максимального размера данных.
Роста int 0 = Файл имеет фиксированный размер и не будет увеличиваться.

>0 = файл будет автоматически расти.

Если значение is_percent_growth = 0, шаг увеличения размера указывается в единицах по 8 КБ, с округлением до ближайших 64 КБ.

Если значение аргумента is_percent_growth = 1, шаг увеличения размера выражается в процентах от общего размера.
is_media_read_only bit 1 = файл находится на носителе только для чтения.

0 = файл размещен на носителе для чтения-записи.
is_read_only bit 1 = файл помечен как файл только для чтения.

0 = файл помечен для чтения-записи.
is_sparse bit 1 = разреженный файл.

0 = неразреженный файл.

Дополнительные сведения см. в разделе "Размер разреженного файла моментального снимка базы данных" (Transact-SQL).
is_percent_growth bit 1 = размер файла увеличивается в процентах.

0 = абсолютное увеличение размера в страницах.
is_name_reserved bit 1 = имя удаленного файла (name или physical_name) доступно для использования только после следующего резервного копирования журнала. После того как файлы удалены из базы данных, логические имена остаются в зарезервированном состоянии до следующего резервного копирования журнала. Этот столбец является важным только в случае использования модели полного восстановления и модели восстановления с неполным протоколированием.
create_lsn numeric(25,0) Регистрационный номер транзакции в журнале (LSN), на котором создан файл.
drop_lsn numeric(25,0) Номер LSN, с которым файл удален.

0 = имя файла недоступно для повторного использования.
read_only_lsn numeric(25,0) Номер LSN, на котором файловая группа, содержащая файл, изменила тип с «для чтения и записи» на «только для чтения» (самое последнее изменение).
read_write_lsn numeric(25,0) Номер LSN, на котором файловая группа, содержащая файл, изменила тип с «только для чтения» на «для чтения и записи» (самое последнее изменение).
differential_base_lsn numeric(25,0) Основа для разностных резервных копий. Экстенты данных, измененных после того, как этот номер LSN будет включен в разностную резервную копию.
differential_base_guid uniqueidentifier Уникальный идентификатор базовой резервной копии, на которой будет основываться разностная резервная копия.
differential_base_time datetime Время, соответствующее differential_base_lsn.
redo_start_lsn numeric(25,0) Номер LSN, с которого должен начаться следующий накат.

Равно NULL за исключением случаев, когда значение аргумента state = RESTORING или значение аргумента state = RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Уникальный идентификатор точки вилки восстановления. Значение аргумента first_fork_guid следующей восстановленной резервной копии журнала должно совпадать с этим значением. Представляет текущее состояние файла.
redo_target_lsn numeric(25,0) Номер LSN, на котором накат в режиме «в сети» по данному файлу может остановиться.

Равно NULL за исключением случаев, когда значение аргумента state = RESTORING или значение аргумента state = RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier Вилка восстановления, на которой файл может быть восстановлен. Используется в паре с redo_target_lsn.
backup_lsn numeric(25,0) Номер LSN самых новых данных или разностная резервная копия файла.

Заметка

При удалении или перестроении больших индексов или удалении или усечении больших таблиц ядро СУБД откладывает фактическое размещение сделки страниц и связанные с ними блокировки до тех пор, пока транзакция не будет зафиксирована. Отложенные операции удаления не освобождают выделенное место немедленно. Следовательно, значения, полученные из sys.database_files сразу после удаления или усечения больших объектов, могут не соответствовать фактическому размеру свободного места на диске.

Разрешения

Необходимо быть членом роли public. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

Следующая инструкция возвращает имя, размер файла и объем пустого места для каждого файла базы данных.

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

Найдите примеры запросов с помощью базы данных SQL в разделе "Управление файловыми пространствами для баз данных в Базе данных SQL Azure". Можно сделать следующее.

Далее

Дополнительные сведения о связанных понятиях см. в следующих статьях: