sys.dm_db_index_usage_stats (Transact-SQL)sys.dm_db_index_usage_stats (Transact-SQL)

適用対象: ○SQL Server (2008 以降) ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

さまざまな種類のインデックス操作の数と、各種の操作が前回実行された時刻を返します。Returns counts of different types of index operations and the time each type of operation was last performed.

Azure SQL データベースAzure SQL Databaseでは、動的管理ビューでデータベースの包含に影響を与える情報を公開することや、ユーザーがアクセスできる他のデータベースに関する情報を公開することはできません。In Azure SQL データベースAzure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. この情報を公開することを避けるため、接続されているテナントに属していないデータが含まれるすべての行はフィルターで除外します。To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.


sys.dm_db_index_usage_statsメモリ最適化インデックスに関する情報は返されません。sys.dm_db_index_usage_stats does not return information about memory-optimized indexes. メモリ最適化インデックスの使用方法については、次を参照してください。 sys.dm_db_xtp_index_stats & #40 です。TRANSACT-SQL と #41 です。For information about memory-optimized index use, see sys.dm_db_xtp_index_stats (Transact-SQL).


このビューからの呼び出しにAzure SQL データ ウェアハウスAzure SQL Data WarehouseまたはParallel Data WarehouseParallel Data Warehouseを使用して、 sys.dm_pdw_nodes_db_index_usage_statsします。To call this view from Azure SQL データ ウェアハウスAzure SQL Data Warehouse or Parallel Data WarehouseParallel Data Warehouse, use sys.dm_pdw_nodes_db_index_usage_stats.

列名Column name データ型Data type 説明Description
database_iddatabase_id smallintsmallint テーブルまたはビューが定義されているデータベースの ID。ID of the database on which the table or view is defined.
object_idobject_id intint インデックスが定義されているテーブルまたはビューの ID。ID of the table or view on which the index is defined
index_idindex_id intint インデックスの ID。ID of the index.
user_seeksuser_seeks bigintbigint ユーザー クエリによるシーク数。Number of seeks by user queries.
user_scansuser_scans bigintbigint 使用していないユーザー クエリによるスキャン数 'シーク' 述語。Number of scans by user queries that did not use 'seek' predicate.
user_lookupsuser_lookups bigintbigint ユーザー クエリによるブックマーク参照数。Number of bookmark lookups by user queries.
user_updatesuser_updates bigintbigint ユーザー クエリによる更新数。Number of updates by user queries. これは、Insert、Delete が含まれていて、実際に影響を受ける行にない実行された操作の数を表すを更新します。This includes Insert, Delete, and Updates representing number of operations done not the actual rows affected. たとえば、1 つのステートメントで 1000 行を削除する場合は、このカウントを 1 増やFor example, if you delete 1000 rows in one statement, this count increments by 1
last_user_seeklast_user_seek datetimedatetime 前回のユーザー シークの時刻。Time of last user seek
last_user_scanlast_user_scan datetimedatetime 前回のユーザー スキャンの時刻。Time of last user scan.
last_user_lookuplast_user_lookup datetimedatetime 前回のユーザー参照の時刻。Time of last user lookup.
last_user_updatelast_user_update datetimedatetime 前回のユーザー更新の時刻。Time of last user update.
system_seekssystem_seeks bigintbigint システム クエリによるシーク数。Number of seeks by system queries.
system_scanssystem_scans bigintbigint システム クエリによるスキャン数。Number of scans by system queries.
system_lookupssystem_lookups bigintbigint システム クエリによる参照数。Number of lookups by system queries.
system_updatessystem_updates bigintbigint システム クエリによる更新数。Number of updates by system queries.
last_system_seeklast_system_seek datetimedatetime 前回のシステム シークの時刻。Time of last system seek.
last_system_scanlast_system_scan datetimedatetime 前回のシステム スキャンの時刻。Time of last system scan.
last_system_lookuplast_system_lookup datetimedatetime 前回のシステム参照の時刻。Time of last system lookup.
last_system_updatelast_system_update datetimedatetime 前回のシステム更新の時刻。Time of last system update.
pdw_node_idpdw_node_id intint 適用対象: Azure SQL データ ウェアハウスAzure SQL Data WarehouseParallel Data WarehouseParallel Data WarehouseApplies to: Azure SQL データ ウェアハウスAzure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse

この配布であるノードの識別子。The identifier for the node that this distribution is on.


指定したインデックスに対し、1 回のクエリ実行でシーク、スキャン、参照、または更新が行われるたび、その操作はインデックスの使用としてカウントされ、このビュー内の対応するカウンターが 1 増えます。Every individual seek, scan, lookup, or update on the specified index by one query execution is counted as a use of that index and increments the corresponding counter in this view. 情報は、ユーザーが送信したクエリによる操作と、統計収集のスキャンなど内部生成されたクエリによる操作の両方についてレポートされます。Information is reported both for operations caused by user-submitted queries, and for operations caused by internally generated queries, such as scans for gathering statistics.

User_updatesカウンターは、挿入によって、インデックスのメンテナンスのレベルを示します、更新、または基になるテーブルまたはビューに対する操作を削除します。The user_updates counter indicates the level of maintenance on the index caused by insert, update, or delete operations on the underlying table or view. このビューを使用して、アプリケーションであまり使用されないインデックスを特定できます。You can use this view to determine which indexes are used only lightly by your applications. また、メンテナンスのオーバーヘッドの原因になっているインデックスも特定できます。You can also use the view to determine which indexes are incurring maintenance overhead. メンテナンスのオーバーヘッドの原因になっており、クエリでほとんどまたはまったく使用されないインデックスが特定できれば、インデックスの削除を検討することもできます。You may want to consider dropping indexes that incur maintenance overhead, but are not used for queries, or are only infrequently used for queries.

各カウンターは、SQL ServerSQL Server (MSSQLSERVER) サービスが開始されるたびに初期化され、空になります。The counters are initialized to empty whenever the SQL ServerSQL Server (MSSQLSERVER) service is started. また、AUTO_CLOSE が ON に設定されているなどの理由によりデータベースがデタッチまたはシャットダウンされた場合は常に、そのデータベースに関連付けられた行がすべて削除されます。In addition, whenever a database is detached or is shut down (for example, because AUTO_CLOSE is set to ON), all rows associated with the database are removed.

インデックスを使用すると、行に追加されますsys.dm_db_index_usage_stats行が既にインデックスに存在しない場合。When an index is used, a row is added to sys.dm_db_index_usage_stats if a row does not already exist for the index. 行が追加されるときに、カウンターが 0 に初期設定されます。When the row is added, its counters are initially set to zero.

アップグレード中にSQL Server 2008 R2SQL Server 2008 R2SQL Server 2012 (11.x)SQL Server 2012 (11.x)、またはSQL Server 2014 (12.x)SQL Server 2014 (12.x)sys.dm_db_index_usage_stats でエントリが削除されます。During upgrade to SQL Server 2008 R2SQL Server 2008 R2, SQL Server 2012 (11.x)SQL Server 2012 (11.x), or SQL Server 2014 (12.x)SQL Server 2014 (12.x), entries in sys.dm_db_index_usage_stats are removed. 以降でSQL Server 2016 (13.x)SQL Server 2016 (13.x)より前のバージョンと同様に、エントリが保持されるSQL Server 2008 R2SQL Server 2008 R2します。Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x), entries are retained as they were prior to SQL Server 2008 R2SQL Server 2008 R2.


SQL ServerSQL Server、必要がありますVIEW SERVER STATE権限。On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
SQL データベースSQL Databaseが必要です、VIEW DATABASE STATEデータベースの権限。On SQL データベースSQL Database, requires the VIEW DATABASE STATE permission in the database.

参照See Also

インデックス関連の動的管理ビューおよび関数 (Transact-SQL) Index Related Dynamic Management Views and Functions (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL) sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL) sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL) sys.indexes (Transact-SQL)
sys.objects (Transact-SQL) sys.objects (Transact-SQL)
パフォーマンスの監視とチューニングMonitor and Tune for Performance