Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
База данных SQL в Microsoft Fabric
Возвращает сведения об использовании пространства для каждого файла данных в базе данных.
Note
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_db_file_space_usage. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Название столбца | Тип данных | Описание |
|---|---|---|
database_id |
smallint | Идентификатор базы данных. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
file_id |
smallint | Идентификатор файла.file_id сопоставляется с file_idsys.dm_io_virtual_file_stats и fileid в sys.sysfiles. |
filegroup_id |
smallint |
Применимо: SQL Server 2012 (11.x) и более поздних версий. FILEGROUP_ID. |
total_page_count |
bigint |
Применимо: SQL Server 2012 (11.x) и более поздних версий. Общее количество страниц в файле данных. |
allocated_extent_page_count |
bigint |
Применимо: SQL Server 2012 (11.x) и более поздних версий. Общее количество страниц в выделенных экстентах в файле данных. |
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 можно использовать для возврата зарезервированного количества страниц каждой единицы выделения в объекте пользователя. Однако столбец total_pages содержит страницы IAM. |
internal_object_reserved_page_count |
bigint | Общее количество страниц в однородном экстенте, размещенных для внутренних объектов в файле. Неиспользуемые страницы из распределенного экстента включаются в счет. Страницы IAM не включены, так как они всегда выделяются из смешанных экстентов. PFS-cтраницы включаются, если они размещаются из однородного экстента. Не существует представления каталога или объекта DMO, возвращающего счетчик страниц каждого внутреннего объекта. |
mixed_extent_page_count |
bigint | Общее количество размещенных и освобожденных страниц в размещенном смешанном экстенте. Смешанный экстент содержит страницы, размещенные для различных объектов. Этот счетчик включает все IAM-страницы в файле. |
modified_extent_page_count |
bigint |
Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и более поздних версий. Общее количество страниц, измененных в выделенных экстентах файла с момента последнего полного резервного копирования базы данных. Измененное количество страниц можно использовать для отслеживания количества разностных изменений в базе данных с момента последнего полного резервного копирования, чтобы решить, требуется ли разностная резервная копия. |
pdw_node_id |
int |
применимо к: Azure Synapse Analytics, система платформы аналитики (PDW) Идентификатор узла, на который находится это распределение. |
distribution_id |
int |
применимо к: Azure Synapse Analytics, система платформы аналитики (PDW) Уникальный числовой идентификатор, связанный с распределением. |
Замечания
Счетчики страниц всегда находятся на уровне экстента. Таким образом, значения счетчика страниц всегда являются несколькими из восьми. Экстенты, содержащие страницы глобальной карты распределения (GAM) и общей глобальной карты распределения (SGAM), являются размещенными однородными экстентами. Они не включены в ранее описанные счетчики страниц. Дополнительные сведения о страницах и экстентах см . в руководстве по архитектуре pages и экстентов.
Содержимое текущего хранилища версий находится в 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);
- рабочие файлы для таких операций, как хэш-соединение
- Сортировка запусков
Кратности связей
| От | Кому | Relationship |
|---|---|---|
sys.dm_db_file_space_usage.database_id, file_id |
sys.dm_io_virtual_file_stats.database_id, file_id |
Один к одному |
Permissions
Для SQL Server 2019 (15.x) и более ранних версий и Управляемый экземпляр SQL требуется VIEW SERVER STATE разрешение.
На SQL Server 2022 (16.x) и более поздних версиях требуется VIEW разрешение на состояние производительности сервера на сервере.
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Examples
Определение объема свободного места в 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;