「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、インデックスの操作数と前回の実行日時に関する情報を出力する方法について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_db_index_usage_stats」における、インデックスの操作数と前回の実行日時に関する情報を出力する方法について解説します。対応バージョンは、「SQL Server Analytics Platform System」にホストされている「SQL Server Parallel Data Warehouse」(PDW)、「Azure SQL Database」「Azure SQL Managed Instance」「Azure Synapse Analytics」(サポートされている全てのバージョン)です。
SQL Serverでは、テーブルやビューにインデックスを作成することで、効率的にデータ検索やテーブル間の結合を実行できます。データ検索やテーブル間の結合に適したインデックスが作成されていない場合には、データ検索のためにテーブルのデータ全体を読み込む必要があり、クエリの実行は非効率なものとなります。
作成したインデックスが実際の運用で正常に使用されているかどうかは、各クエリで実行プランを確認して判断できます。また、インスタンス全体で大まかなインデックスの使用状況を確認することも、不要なインデックスの有無を確認することもできます。
「sys.dm_db_index_usage_stats」では、インデックスの操作数と前回の実行日時に関する情報を出力します。
列名 | データ型 | 説明 |
---|---|---|
database_id | smallint | データベースのID |
object_id | int | オブジェクトID |
index_id | int | インデックスのID |
user_seeks | bigint | ユーザークエリによるシーク数 |
user_scans | bigint | ユーザークエリによるスキャン数 |
user_lookups | bigint | ユーザークエリによるブックマーク参照数 |
user_updates | bigint | ユーザークエリによる更新数 |
last_user_seek | datetime | 前回のユーザーシークの日時 |
last_user_scan | datetime | 前回のユーザースキャンの日時 |
last_user_lookup | datetime | 前回のユーザーブックマーク参照の日時 |
last_user_update | datetime | 前回のユーザー更新の日時 |
system_seeks | bigint | システムクエリによるシーク数 |
system_scans | bigint | システムクエリによるスキャン数 |
system_lookups | bigint | システムクエリによるブックマーク参照数 |
system_updates | bigint | システムクエリによる更新数 |
last_system_seek | datetime | 前回のシステムシークの日時 |
last_system_scan | datetime | 前回のシステムスキャンの日時 |
last_system_lookup | datetime | 前回のシステムブックマーク参照の日時 |
last_system_update | datetime | 前回のシステム更新の日時 |
Copyright © ITmedia, Inc. All Rights Reserved.