検索
連載

インデックスの操作数と前回の実行日時に関する情報を出力するSQL Server動的管理ビューレファレンス(116)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、インデックスの操作数と前回の実行日時に関する情報を出力する方法について解説します。

Share
Tweet
LINE
Hatena

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 前回のシステム更新の日時

動作例

 インデックスを作成し、いくつか操作を実行した後で「sys.dm_db_index_usage_stats」を実行すると、インデックスの操作数と前回の実行日時に関する情報が出力されました(図1)。

図1
図1 インデックスの操作数と前回の実行日時に関する情報が出力された

 「user_xxxx」列では、ユーザークエリにより使用された回数が表示されており、インスタンス全体でのインデックスの使用状況を確認できます。しばらく運用しても「sys.dm_db_index_usage_stats」に出力されないインデックスは、実運用で使用されていない可能性がありますので、オブジェクトの見直しなどで参考にすることができます。

※本Tipsは、「Windows Server 2019」上に「SQL Server 2019」をインストールした環境を想定して解説しています。

筆者紹介

椎名 武史(しいな たけし)

BIPROGY株式会社(ビプロジー)所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。

伊東 敏章(いとう としあき)

BIPROGY株式会社(ビプロジー)所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る