「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、インデックスが欠落している列に関する情報を出力する方法について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理関数「sys.dm_db_missing_index_columns」における、インデックスが欠落している列に関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)、「Azure SQL Database」です。
SQL Serverでは、テーブルやビューにインデックスを作成することで、効率的にデータ検索やテーブル間の結合を実行できます。データ検索やテーブル間の結合に適したインデックスが作成されていない場合には、データ検索のためにテーブルのデータ全体を読み込む必要があり、クエリの実行は非効率なものとなります。
SQL Serverでは、クエリのコンパイル時に、クエリに適したインデックスが不足していること(欠落インデックス)を検出する機能があります。検出された欠落インデックスはSQL Server Management Studio(SSMS)でクエリの実行プランを表示して確認することや、動的管理ビューを使用して確認することが可能です。
「sys.dm_db_missing_index_columns」では、インデックスが欠落している列に関する情報を出力します。
構文 sys.dm_db_missing_index_columns (index_handle)
列名 | データ型 | 説明 |
---|---|---|
index_handle | int | 欠落しているインデックスを識別する整数値 |
列名 | データ型 | 説明 |
---|---|---|
column_id | int | 列のID |
column_name | sysname | 列の名前 |
column_usage | varchar(20) | クエリでの列の使用方法。次のいずれかになる EQUALITY INEQUALITY INCLUDE |
Copyright © ITmedia, Inc. All Rights Reserved.