sys.dm_db_file_space_usage (Transact-SQL)
Возвращает сведения о пространстве, выделенном для каждого файла базы данных.
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Имя столбца |
Тип данных |
Описание |
|
---|---|---|---|
database_id |
smallint |
Идентификатор базы данных. |
|
file_id |
smallint |
Идентификатор файла. Столбец file_id сопоставляется со столбцом file_id в представлении sys.dm_io_virtual_file_stats и столбцом fileid в представлении sys.sysfiles. |
|
filegroup_id |
smallint |
FILEGROUP_ID.
|
|
total_page_count |
bigint |
Общее число страниц в файле.
|
|
allocated_extent_page_count |
bigint |
Общее количество страниц в несвободных экстентах файла.
|
|
unallocated_extent_page_count |
bigint |
Общее количество страниц в свободных экстентах файла. Неиспользованные страницы в размещенные экстенты не включаются. |
|
version_store_reserved_page_count |
bigint |
Общее количество страниц в однородных экстентах, размещенных для хранилища версий. Страницы хранилища версий никогда не размещаются из смешанных экстентов. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов. PFS-cтраницы включаются, если они размещаются из однородного экстента. Дополнительные сведения см. в разделе sys.dm_tran_version_store (Transact-SQL). |
|
user_object_reserved_page_count |
bigint |
Общее количество страниц, выделенных из однородных экстентов для пользовательских объектов в базе данных. Неиспользуемые страницы из размещенного экстента включаются в счет. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов. PFS-cтраницы включаются, если они размещаются из однородного экстента. Можно использовать столбец total_pages в представлении каталога sys.allocation_units для возврата счетчика зарезервированных страниц каждой единицы распределения в пользовательском объекте. Однако учтите, что столбец total_pages включает IAM-страницы. |
|
internal_object_reserved_page_count |
bigint |
Общее количество страниц в однородном экстенте, размещенных для внутренних объектов в файле. Неиспользуемые страницы из распределенного экстента включаются в счет. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов. PFS-cтраницы включаются, если они размещаются из однородного экстента. Не существует представления каталога или объекта DMO, возвращающего счетчик страниц каждого внутреннего объекта. |
|
mixed_extent_page_count |
bigint |
Общее количество размещенных и освобожденных страниц в размещенном смешанном экстенте. Смешанный экстент содержит страницы, размещенные для различных объектов. Этот счетчик включает все IAM-страницы в файле. |
Замечания
Счетчики страниц всегда находятся на уровне экстента. Поэтому значения счетчиков страниц всегда будут кратными восьми. Экстенты, содержащие страницы глобальной карты распределения (GAM) и общей глобальной карты распределения (SGAM), являются размещенными однородными экстентами. Они не включаются в вышеописанные счетчики страниц.
Содержание текущего хранилища версий находится в sys.dm_tran_version_store. Страницы хранилища версий отслеживаются на уровне файла вместо уровня сеанса и уровня задачи, потому что они являются глобальными ресурсами. Сеанс может создавать версии, но версии не могут быть удалены, когда сеанс заканчивается. При очистке хранилища версий необходимо рассмотреть наиболее долго выполняющуюся транзакцию, которой нужен доступ к определенной версии. Наиболее долго выполняющаяся транзакция, связанная с очисткой хранилища версий, может быть найдена путем просмотра столбца elapsed_time_seconds в sys.dm_tran_active_snapshot_database_transactions.
Частые изменения в столбце mixed_extent_page_count могут указывать на затрудненное использование SGAM-страниц. Когда это происходит, можно обнаружить много ожиданий PAGELATCH_UP, в которых ресурсом ожидания является SGAM-страница. Дополнительные сведения см. в разделах sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) и sys.dm_os_latch_stats (Transact-SQL).
Пользовательские объекты
Следующие объекты включаются в счетчики страниц пользовательских объектов.
Пользовательские таблицы и индексы
Системные таблицы и индексы
Глобальные временные таблицы и индексы
Локальные временные таблицы и индексы
Табличные переменные
Таблицы, возвращаемые в возвращающих функции с табличным значением
Внутренние объекты
Внутренние объекты хранятся только в базе данных tempdb. Следующие объекты включаются в счетчики страниц внутренних объектов:
рабочие таблицы для выполнения операций с курсорами и буферами, а также для хранения временных больших объектов (LOB);
рабочие файлы для таких операций, как хэш-соединение
Сортировки
Количество элементов связей
Из |
До |
Связь |
---|---|---|
sys.dm_db_file_space_usage.database_id, file_id |
sys.dm_io_virtual_file_stats.database_id, file_id |
Один к одному |
Разрешения
Необходимо разрешение VIEW SERVER STATE на сервере.
Примеры
Определение объема свободного пространства в базе данных tempdb
Следующий запрос возвращает общее количество свободных страниц и общий объем свободного пространства в мегабайтах (МБ), доступный во всех файлах базы данных tempdb.
USE tempdb;
GO
SELECT SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Определение объема пространства, используемого пользовательскими объектами
Следующий запрос возвращает общее количество страниц, используемых пользовательскими объектами, и общее пространство в мегабайтах, используемое пользовательскими объектами в базе данных tempdb.
USE tempdb;
GO
SELECT SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;
См. также
Справочник
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления базы данных (Transact-SQL)