sys.dm_db_file_space_usage (Transact-SQL)sys.dm_db_file_space_usage (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

データベース内の各データファイルの領域使用状況に関する情報を返します。Returns space usage information for each data file in the database.

注意

またはからこれを呼び出すに Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data Warehousesys.dm_pdw_nodes_db_file_space_usage という名前を使用します。To call this from Azure Synapse AnalyticsAzure Synapse Analytics or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_db_file_space_usage.

列名Column name データ型Data type 説明Description
database_iddatabase_id smallintsmallint データベース ID。Database ID.
file_idfile_id smallintsmallint ファイル ID。File ID.

file_id は、 sys.sysファイルsys.dm_io_virtual_file_statsおよび fileid に file_id にマップされます。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.

ファイル グループ 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 ページは、一定の範囲から割り当てられている場合に含まれます。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 ページは、一定の範囲から割り当てられている場合に含まれます。PFS pages are included if they are allocated from a uniform extent.

Sys.allocation_unitsカタログビューの [total_pages] 列を使用して、ユーザーオブジェクト内の各アロケーションユニットの予約済みページ数を返すことができます。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 ページは、一定の範囲から割り当てられている場合に含まれます。PFS pages are included if they are allocated from a uniform extent.

各内部オブジェクトのページ数を返すカタログビューまたは動的管理オブジェクトはありません。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) 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 AnalyticsParallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Parallel Data WarehouseParallel Data Warehouse

このディストリビューションが配置されているノードの識別子。The identifier for the node that this distribution is on.
distribution_iddistribution_id intint 適用対象: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Parallel Data WarehouseParallel Data Warehouse

分布に関連付けられている一意の数値 id です。The unique numeric id associated with the distribution.

解説Remarks

ページ数は常にエクステント レベルのものです。Page counts are always at the extent level. したがって、ページ数の値は常に 8 の倍数になります。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. バージョンストアのクリーンアップに関連する実行時間が最も長いトランザクションを検出するには、 sys.dm_tran_active_snapshot_database_transactionsの elapsed_time_seconds 列を表示します。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 リレーションシップRelationship
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 Database Basic、S0、S1 のサービス目標、およびエラスティックプール内のデータベースについては、 サーバー管理者 アカウントまたは Azure Active Directory 管理者 アカウントが必要です。On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the server admin account or the Azure Active Directory admin account is required. その他のすべての SQL Database サービスの目的で VIEW DATABASE STATE は、データベースで権限が必要になります。On all other SQL Database service objectives, the VIEW DATABASE STATE permission is required in the database.

Examples

tempdb の使用可能な空き領域の確認Determing the Amount of Free Space in tempdb

次のクエリは、 tempdb 内のすべてのデータファイルで使用可能な空きページと合計空き領域 (mb) の合計数を返します。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 のユーザー オブジェクトにより使用されるページ数の合計と領域の合計 (MB 単位) が返されます。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)