sys.database_files (Transact-SQL)
Применимо к:SQL Server
Azure SQL Database
Azure Sql Managed Instance
Azure Synapse Analytics Analytics
Platform 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". Можно сделать следующее.
- Запрос одной базы данных для сведений о пространстве хранилища.
- Запрос эластичного пула для сведений о пространстве хранилища.
Далее
Дополнительные сведения о связанных понятиях см. в следующих статьях: