Поделиться через


sys.database_files (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

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

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

0 = строки
1 = журнал.
2 = FILESTREAM.
3 = определено только для информационных целей. Не поддерживается. Совместимость с будущими версиями не гарантируется.
4 = полный текст
type_desc nvarchar(60) Описание типа файла:

ROWS
LOG
FILESTREAM
FULLTEXT
data_space_id int Значение может быть равно нулю или больше нуля. Значение представляет файл журнала базы данных, а значение 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 ТБ.
Для контейнеров max_size файловой группы FILESTREAM отражает максимальный размер контейнера.
Базы данных, обновляемые с помощью отчета о неограниченном размере файла журнала для максимального размера -1 файла журнала.
В База данных SQL Azure сумма max_size значений для всех файлов данных может быть меньше максимального размера данных для базы данных. Используется DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') для определения максимального размера данных.
growth 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 = RECOVERY_PENDINGнет.state = RESTORING
redo_start_fork_guid uniqueidentifier Уникальный идентификатор точки вилки восстановления. Восстановление first_fork_guid следующей резервной копии журнала должно соответствовать этому значению. Представляет текущее состояние файла.
redo_target_lsn numeric(25,0) Номер LSN, на котором накат в режиме «в сети» по данному файлу может остановиться.

Если NULL или state = RECOVERY_PENDINGнет.state = RESTORING
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. Вы можете: