sys.dm_db_file_space_usage (Transact-SQL)sys.dm_db_file_space_usage (Transact-SQL)
Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии)
SQL ServerSQL Server (all supported versions)
База данных SQL AzureAzure SQL Database
База данных SQL AzureAzure SQL Database
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Параллельное хранилище данныхParallel Data Warehouse
Параллельное хранилище данныхParallel Data Warehouse
SQL ServerSQL Server (все поддерживаемые версии)
SQL ServerSQL Server (all supported versions)
База данных SQL AzureAzure SQL Database
База данных SQL AzureAzure SQL Database
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Управляемый экземпляр SQL AzureAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Параллельное хранилище данныхParallel Data Warehouse
Параллельное хранилище данныхParallel Data Warehouse
Возвращает сведения об использовании пространства для каждого файла данных в базе данных.Returns space usage information for each data file in the database.
Примечание
Чтобы вызвать эту функцию из Azure Synapse AnalyticsAzure Synapse Analytics или Параллельное хранилище данныхParallel Data Warehouse , используйте имя sys.dm_pdw_nodes_db_file_space_usage.To call this from Azure Synapse AnalyticsAzure Synapse Analytics or Параллельное хранилище данныхParallel Data Warehouse, use the name sys.dm_pdw_nodes_db_file_space_usage.
Имя столбцаColumn name | Тип данныхData type | ОписаниеDescription |
---|---|---|
database_iddatabase_id | smallintsmallint | Идентификатор базы данных.Database ID. |
file_idfile_id | smallintsmallint | Идентификатор файла.File ID. file_id сопоставляется с file_id в sys.dm_io_virtual_file_stats и в файл с ид в sys.sysфайлах.file_id maps to file_id in sys.dm_io_virtual_file_stats and to fileid in sys.sysfiles. |
filegroup_idfilegroup_id | smallintsmallint | Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later. FILEGROUP_ID.Filegroup ID. |
total_page_counttotal_page_count | bigintbigint | Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later. Общее число страниц в файле данных.Total number of pages in the data file. |
allocated_extent_page_countallocated_extent_page_count | bigintbigint | Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later. Общее число страниц в выделенных экстентах в файле данных.Total number of pages in the allocated extents in the data file. |
unallocated_extent_page_countunallocated_extent_page_count | bigintbigint | Общее число страниц в нераспределенных экстентах в файле данных.Total number of pages in the unallocated extents in the data file. Неиспользованные страницы в размещенные экстенты не включаются.Unused pages in allocated extents are not included. |
version_store_reserved_page_countversion_store_reserved_page_count | bigintbigint | Общее количество страниц в однородных экстентах, размещенных для хранилища версий.Total number of pages in the uniform extents allocated for the version store. Страницы хранилища версий никогда не размещаются из смешанных экстентов.Version store pages are never allocated from mixed extents. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов.IAM pages are not included, because they are always allocated from mixed extents. PFS-cтраницы включаются, если они размещаются из однородного экстента.PFS pages are included if they are allocated from a uniform extent. Дополнительные сведения см. в разделе sys.dm_tran_version_store (Transact-SQL).For more information, see sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_countuser_object_reserved_page_count | bigintbigint | Общее количество страниц, выделенных из однородных экстентов для пользовательских объектов в базе данных.Total number of pages allocated from uniform extents for user objects in the database. Неиспользуемые страницы из распределенного экстента включаются в счет.Unused pages from an allocated extent are included in the count. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов.IAM pages are not included, because they are always allocated from mixed extents. PFS-cтраницы включаются, если они размещаются из однородного экстента.PFS pages are included if they are allocated from a uniform extent. Можно использовать столбец total_pages в представлении каталога sys.allocation_units , чтобы получить зарезервированное количество страниц каждой единицы распределения в объекте пользователя.You can use the total_pages column in the sys.allocation_units catalog view to return the reserved page count of each allocation unit in the user object. Однако учтите, что столбец total_pages включает IAM-страницы.However, note that the total_pages column includes IAM pages. |
internal_object_reserved_page_countinternal_object_reserved_page_count | bigintbigint | Общее количество страниц в однородном экстенте, размещенных для внутренних объектов в файле.Total number of pages in uniform extents allocated for internal objects in the file. Неиспользуемые страницы из распределенного экстента включаются в счет.Unused pages from an allocated extent are included in the count. IAM-страницы не включаются, так как они всегда размещаются из смешанных экстентов.IAM pages are not included, because they are always allocated from mixed extents. PFS-cтраницы включаются, если они размещаются из однородного экстента.PFS pages are included if they are allocated from a uniform extent. Не существует представления каталога или объекта DMO, возвращающего счетчик страниц каждого внутреннего объекта.There is no catalog view or dynamic management object that returns the page count of each internal object. |
mixed_extent_page_countmixed_extent_page_count | bigintbigint | Общее количество размещенных и освобожденных страниц в размещенном смешанном экстенте.Total number of allocated and unallocated pages in allocated mixed extents in the file. Смешанный экстент содержит страницы, размещенные для различных объектов.Mixed extents contain pages allocated to different objects. Этот счетчик включает все IAM-страницы в файле.This count does include all the IAM pages in the file. |
modified_extent_page_countmodified_extent_page_count | bigintbigint | Область применения: SQL Server 2016 (13.x);SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) и выше.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) SP2 and later. Общее число страниц, измененных в выделенных экстентах файла с момента последнего полного резервного копирования базы данных.Total number of pages modified in allocated extents of the file since last full database backup. Измененное число страниц можно использовать для контроля количества разностных изменений в базе данных с момента последнего полного резервного копирования, чтобы решить, нужна ли разностная резервная копия.The modified page count can be used to track amount of differential changes in the database since last full backup, to decide if differential backup is needed. |
pdw_node_idpdw_node_id | intint | Применимо к: Azure Synapse AnalyticsAzure Synapse Analytics , Параллельное хранилище данныхParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Параллельное хранилище данныхParallel Data Warehouse Идентификатор узла, на котором находится данное распределение.The identifier for the node that this distribution is on. |
distribution_iddistribution_id | intint | Применимо к: Azure Synapse AnalyticsAzure Synapse Analytics , Параллельное хранилище данныхParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Параллельное хранилище данныхParallel Data Warehouse Уникальный числовой идентификатор, связанный с распределением.The unique numeric id associated with the distribution. |
ПримечанияRemarks
Счетчики страниц всегда находятся на уровне экстента.Page counts are always at the extent level. Поэтому значения счетчиков страниц всегда будут кратными восьми.Therefore, page count values will always be a multiple of eight. Экстенты, содержащие страницы глобальной карты распределения (GAM) и общей глобальной карты распределения (SGAM), являются размещенными однородными экстентами.The extents that contain Global Allocation Map (GAM) and Shared Global Allocation Map (SGAM) allocation pages are allocated uniform extents. Они не включаются в вышеописанные счетчики страниц.They are not included in the previously described page counts. Дополнительные сведения о страницах и экстентах см. в разделе рекомендации по архитектуре страниц и экстентов.For more information about pages and extents, see Pages and Extents Architecture Guide.
Содержимое текущего хранилища версий находится в sys.dm_tran_version_store.The content of the current version store is in sys.dm_tran_version_store. Страницы хранилища версий отслеживаются на уровне файла вместо уровня сеанса и уровня задачи, потому что они являются глобальными ресурсами.Version store pages are tracked at the file level instead of the session and task level, because they are global resources. Сеанс может создавать версии, но версии не могут быть удалены, когда сеанс заканчивается.A session may generate versions, but the versions cannot be removed when the session ends. При очистке хранилища версий необходимо рассмотреть наиболее долго выполняющуюся транзакцию, которой нужен доступ к определенной версии.Version store cleanup must consider the longest running transaction that needs access to the particular version. Чтобы обнаружить самую длительную транзакцию, связанную с очисткой хранилища версий, просмотрите столбец elapsed_time_seconds в sys.dm_tran_active_snapshot_database_transactions.The longest running transaction related to version store clean-up can be discovered by viewing the elapsed_time_seconds column in sys.dm_tran_active_snapshot_database_transactions.
Частые изменения в столбце mixed_extent_page_count могут указывать на затрудненное использование SGAM-страниц.Frequent changes in the mixed_extent_page_count column may indicate heavy use of SGAM pages. Когда это происходит, можно обнаружить много ожиданий PAGELATCH_UP, в которых ресурсом ожидания является SGAM-страница.When this occurs, you may see many PAGELATCH_UP waits in which the wait resource is an SGAM page. Дополнительные сведения см. в статьях sys.dm_os_waiting_tasks (Transact-sql), sys.dm_os_wait_stats (transact-sql)и sys.dm_os_latch_stats (Transact-SQL).For more information, see sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL), and sys.dm_os_latch_stats (Transact-SQL).
Пользовательские объектыUser Objects
Следующие объекты включаются в счетчики страниц пользовательских объектов.The following objects are included in the user object page counters:
Пользовательские таблицы и индексыUser-defined tables and indexes
Системные таблицы и индексыSystem tables and indexes
Глобальные временные таблицы и индексыGlobal temporary tables and indexes
Локальные временные таблицы и индексыLocal temporary tables and indexes
Табличные переменныеTable variables
Таблицы, возвращаемые в функциях с табличным значениемTables returned in the table-valued functions
Внутренние объектыInternal Objects
Внутренние объекты находятся только в базе данных tempdb.Internal objects are only in tempdb. Следующие объекты включаются в счетчики страниц внутренних объектов:The following objects are included in the internal object page counters:
рабочие таблицы для выполнения операций с курсорами и буферами, а также для хранения временных больших объектов (LOB);Work tables for cursor or spool operations and temporary large object (LOB) storage
рабочие файлы для таких операций, как хэш-соединениеWork files for operations such as a hash join
СортировкиSort runs
Количество элементов связейRelationship Cardinalities
ОтFrom | КомуTo | RelationshipRelationship |
---|---|---|
sys.dm_db_file_space_usage.database_id, file_idsys.dm_db_file_space_usage.database_id, file_id | sys.dm_io_virtual_file_stats.database_id, file_idsys.dm_io_virtual_file_stats.database_id, file_id | "Одна к одной"One-to-one |
РазрешенияPermissions
В SQL ServerSQL Server необходимо VIEW SERVER STATE
разрешение.On SQL ServerSQL Server, requires VIEW SERVER STATE
permission.
В базах данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах Server admin
Azure Active Directory admin
требуется учетная запись или.On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the Server admin
or an Azure Active Directory admin
account is required. Для всех остальных целей службы базы данных SQL VIEW DATABASE STATE
разрешение требуется в базе данных.On all other SQL Database service objectives, the VIEW DATABASE STATE
permission is required in the database.
ПримерыExamples
Определение объема свободного пространства в базе данных tempdbDeterming the Amount of Free Space in tempdb
Следующий запрос возвращает общее количество свободных страниц и общее свободное пространство в мегабайтах (МБ), доступное во всех файлах данных в tempdb.The following query returns the total number of free pages and total free space in megabytes (MB) available in all data files in 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;
Определение объема пространства, используемого пользовательскими объектамиDetermining the Amount of Space Used by User Objects
Следующий запрос возвращает общее количество страниц, используемых пользовательскими объектами, и общее пространство в мегабайтах, используемое пользовательскими объектами в базе данных tempdb.The following query returns the total number of pages used by user objects and the total space used by user objects in 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;
См. также:See Also
Динамические административные представления и функции (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Динамические административные представления, связанные с базами данных ()Transact-SQL Database Related Dynamic Management Views (Transact-SQL)
sys.dm_db_task_space_usage (Transact-SQL) sys.dm_db_task_space_usage (Transact-SQL)
sys.dm_db_session_space_usage (Transact-SQL)sys.dm_db_session_space_usage (Transact-SQL)