Просмотр размера разреженного файла моментального снимка базы данных (Transact-SQL)
Область применения: SQL Server
В этом разделе описывается, как использовать Transact-SQL для проверки того, что файл базы данных SQL Server является разреженным и чтобы узнать о его фактических и максимальных размерах. Разреженные файлы, которые являются функцией файловой системы NTFS, используются моментальными снимками базы данных SQL Server.
Примечание.
При создании моментального снимка базы данных разреженные файлы создаются с помощью имен файлов, указанных в инструкции CREATE DATABASE. Эти имена файлов хранятся в таблице sys.master_files в столбце physical_name . В таблице sys.database_files (в базе данных-источнике или в моментальном снимке) столбец physical_name всегда содержит имена файлов базы данных-источника.
Убедитесь, что файл базы данных является разреженным файлом
На экземпляре SQL Server:
Выберите столбец is_sparse в таблице sys.database_files в моментальном снимке базы данных или в таблице sys.master_files. Значение указывает, является ли файл разреженным, следующим образом:
1 = разреженный файл.
0 = неразреженный файл.
Определение фактического размера разреженного файла
Примечание.
Разреженные файлы каждый раз увеличиваются в размере на 64 килобайта (КБ); таким образом, размер разреженного файла на диске всегда кратен 64 КБ.
Чтобы просмотреть количество байтов, которые каждый разреженный файл моментального снимка в настоящее время используется на диске, выполните запрос к столбцу size_on_disk_bytes динамического административного представления SQL Server sys.dm_io_virtual_file_stats .
Чтобы увидеть место на диске, занимаемое разреженным файлом, можно щелкнуть правой кнопкой мыши файл в Microsoft Windows, выбрать пункт Свойстваи просмотреть значение Место на диске .
Определение максимального размера разреженного файла
Максимальный размер, до которого может увеличиться разреженный файл, равен размеру соответствующего файла базы данных-источника на момент создания моментального снимка. Чтобы узнать этот размер, можно использовать один из следующих способов.
Использование командной строки Windows.
Использование команд Windows dir .
Выбор разреженного файла, открытие диалогового окна Свойства в Windows и просмотр значения Размер .
На экземпляре SQL Server:
Выбрать столбец size из таблицы sys.database_files в моментальном снимке базы данных или из таблицы sys.master_files. Значение столбца size отражает максимальный объем пространства (в страницах SQL), который может когда-либо использоваться моментальным снимком; это значение эквивалентно значению поля Windows Size , за исключением того, что оно представлено в терминах количества страниц SQL в файле; размер в байтах равен:
( число_страниц * 8192)
Пример
Следующий скрипт отображается размер в килобайтах для каждого разреженного файла. Скрипт также указывает максимальный размер в мегабайтах, до которого может увеличиться разреженный файл. Выполните скрипт Transact-SQL в SQL Server Management Studio.
SELECT DB_NAME(sd.source_database_id) AS [SourceDatabase],
sd.name AS [Snapshot],
mf.name AS [Filename],
size_on_disk_bytes/1024 AS [size_on_disk (KB)],
mf2.size/128 AS [MaximumSize (MB)]
FROM sys.master_files mf
JOIN sys.databases sd
ON mf.database_id = sd.database_id
JOIN sys.master_files mf2
ON sd.source_database_id = mf2.database_id
AND mf.file_id = mf2.file_id
CROSS APPLY sys.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
WHERE mf.is_sparse = 1
AND mf2.is_sparse = 0
ORDER BY 1;
См. также
Моментальные снимки базы данных (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)