この特集のトップページへ

9.5.2 インデックスチューニングウィザード

 SQL Server 7.0では,クエリアナライザ,SQL Serverプロファイラ,インデックスチューニングウィザードといった各種ツールが提供されている。データベース管理者は,これらのツールを利用して,容易にテーブルに正しいインデックスを設定することができる。
 インデックスチューニングウィザードは,SQL Serverプロファイラと組み合わせて利用される。まず,SQL Serverプロファイラを利用し,データベースサーバー上で発生しているアクティビティの詳細情報をSQL Serverのテーブルあるいは拡張子“.trc”のファイルに記録する。インデックスチューニングウィザードは,このファイルを読み込み,インデックスについて分析する。インデックスチューニングウィザードを利用することにより,データベースに推奨されるインデックスを自動的に設定したり,インデックスを自動設定するスケジュールを定義したり,Transact-SQLステートメントによるスクリプトを生成したりすることができる。
 インデックスチューニングウィザードを利用するには,次のようにする。

(1)SQL Server Enterprise Managerのメニューから[ツール]−[ウィザード]を選択する。[ウィザードの選択]ダイアログボックスが表示されるので,[管理]のなかにある[インデックスチューニングウィザード]を選択して[OK]ボタンを押す。

(2)インデックスチューニングウィザードが起動されるので,[次へ]ボタンを押す。

Fig.9-2 インデックスチューニングウィザード


(3)[サーバーとデータベースの選択]画面(Fig.9-3)が表示されるので,分析したいデータベース名とデータベースが格納されているサーバー名を指定し,実行モードとして[既存のインデックスをすべて保持]を選択する。詳細に分析したい場合は,[完全分析実行]も選択すればよい。設定が完了したら,[次へ]ボタンを押す。

(4)[ワークロードの識別]画面(Fig.9-4)が表示されるので,[作成済みのワークロードファイルを使用]するか,[独自にワークロードファイルを作成]するかを選択する。ワークロードとは,SQL Serverプロファイラを使用して収集したリソースの使用量(トレース情報)をファイルに記録したものである。通常は,業務でデータベースを使用するまえにSQL Serverプロファイラでトレースを確保するように設定しておき,記録されたトレースをワークロードとして分析することになる。このため,一般的にはデフォルトの[作成済みのワークロードファイルを使用]を選択し,[次へ]ボタンを押すことになるだろう。[独自にワークロードファイルを作成]を選択して[次へ]ボタンを押した場合は,SQL Serverプロファイラが表示されるので,必要なワークロードファイルを作成する。

Fig.9-3 サーバーとデータベースの選択


Fig.9-4 ワークロードの識別


(5)[ワークロードの識別]画面で[作成済みのワークロードファイルを使用]を選択した場合は,[ワークロードの指定]画面が表示されるので,分析対象となるワークロードファイルを選択する。SQL Serverプロファイラの出力する拡張子“.trc”のファイルまたはSQL Serverのテーブルのどちらかを選択し,[次へ]ボタンを押す。

Fig.9-5 ワークロードの指定


(6)[ワークロードの指定]画面で[詳細設定オプション]ボタンを押した場合,Fig.9-6に示すダイアログボックスが表示される。このダイアログボックスでは,[チューニングする最大クエリ数],[推奨インデックスの最大容量],[インデックスごとの最大列数]を設定できる。必要なパラメータを設定し,[OK]ボタンを押す。

Fig.9-6 詳細設定オプション


(7)[チューニングするテーブルの選択]画面が表示されるので,チューニング対象となるテーブルを選択して[次へ]ボタンを押す。

Fig.9-7 チューニングするテーブルの選択

(8)インデックスチューニングウィザードでワークロードを分析し,Fig.9-8に示すような分析結果が表示される。分析結果を確認したら,[次へ]ボタンを押す。この列では,推奨インデックスを作成するとクエリの性能が14%向上するという分析結果が示されている。
 Fig.9-8で[分析]ボタンを押すと,[インデックス使用法レポート(推奨設定)],[インデックス使用法レポート(現在の設定)],[テーブル分析レポート],[クエリコストレポート],[ワークロード分析レポート],[チューニングサマリレポート]という6つの詳細な分析結果を参照することができる。分析結果はタブ区切りのテキストファイルに保存することもできるので,必要であれば[上書き保存]ボタンを押し,必要でなければ[閉じる]ボタンを押す。

Fig.9-8 推奨インデックス


○[インデックス使用法レポート(推奨設定)]
 インデックスチューニングウィザードでワークロードを分析した結果から推奨されるインデックスを設定した場合に,その時点で設定されているインデックスを含めて,インデックスの使用率とインデックスページを格納するために必要となる容量が示される。その時点における設定と推奨設定とを比較したときに,インデックスの使用率がどれだけ向上するか,そしてインデックスの容量はどれだけ増大するかを検証し,トレードオフ判断の材料とする。ここで[上書き保存]を選択すれば,インデックス使用法レポートを任意のテキストファイルに保存することができる。保存したインデックス使用法レポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-9 インデックス使用法レポート(推奨設定)


○[インデックス使用法レポート(現在の設定)]
 インデックスチューニングウィザードでワークロードを分析した結果から,その時点で設定されているインデックスの使用率とインデックスページを格納するために必要となる容量が示される。ここで[上書き保存]を選択すれば,インデックス使用法レポートを任意のテキストファイルに保存することができる。保存したインデックス使用法レポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-10 インデックス使用法レポート(現在の設定)


○[テーブル分析レポート]
 ワークロードを分析した結果から最も使用率の高いテーブルの一覧と,その時点で設定されているインデックスのみを利用した場合と推奨インデックスを設定した場合のクエリ実行コストの比率が示される。クエリ実行コストが低くなるか否かで,推奨インデックスを設定するか否かを判断する。ここで[上書き保存]を選択すれば,テーブル分析レポートを任意のテキストファイルに保存することができる。保存したテーブル分析レポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-11 テーブル分析レポート


○[クエリコストレポート]
 ワークロードのなかでクエリ実行コストの高い100個のクエリに対して,推奨インデックスを設定した場合のコスト改善率が示される。どのクエリに対してコスト改善率が高いか判断することができる。したがって,推奨インデックスを設定することで,性能問題を引き起こしているクエリの性能がどれだけ改善されるかを推測することができる。もし,改善率が低ければ,性能問題の原因はクエリ自体にある可能性もある。ここで[上書き保存]を選択すれば,クエリコストレポートを任意のテキストファイルに保存することができる。保存したクエリコストレポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-12 クエリコストレポート


○[ワークロード分析レポート]
 その時点におけるインデックス設定で最もコストの高いクエリを基準にクエリコストを相対評価し,10%ごとにコストグループを作成する。そして,その時点のインデックス設定と推奨されるインデックス設定の両者について,各データ操作クエリがどのコストグループに分布しているかを示す。コストの改善されるクエリ数がどれだけあるのか,推奨インデックスによる改善効果の範囲を判断することができる。ここで[上書き保存]を選択すれば,ワークロード分析レポートを任意のテキストファイルに保存することができる。保存したワークロード分析レポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-13 ワークロード分析レポート


○[チューニングサマリレポート]
 インデックスチューニングウィザードがワークロードを分析した概要が示される。具体的には,チューニング用に選択したテーブル数,チューニングされたクエリ数,分析時間などが示される。ここで[上書き保存]を選択すれば,チューニングサマリレポートを任意のテキストファイルに保存することができる。保存したチューニングサマリレポートはMicrosoft Excelなどを利用して分析することが可能になる。

Fig.9-14 チューニングサマリレポート


(9)[インデックス更新ジョブのスケジュール]画面が表示されるので,推奨インデックス設定を実行するスケジュールを指定するか,推奨インデックス設定を実施するスクリプトを作成して後日スケジューリングするかを選択する。適切な選択肢を選んで[次へ]ボタンを押す。

Fig.9-15 インデックス更新ジョブのスケジュール


(10)インデックスチューニングウィザード完了の画面が表示されるので,[完了]ボタンを押して処理を終了する。

COLUMN
 クエリアナライザを利用するには,[スタート]メニューから[プログラム]−[Microsoft SQL Server 7.0]−[クエリアナライザ]を選択するか,SQL Server Enterprise Managerのメニューから[ツール]−[SQL Serverクエリアナライザ]を選択する。クエリアナライザを用いて実際に分析するには,メニューから[クエリ]−[インデックス分析の実行]を選択する。すると,指定したクエリにおけるインデックスの有用性および推奨インデックスが提示される。

Fig.9-16 インデックス分析を実行した例

前へ Chapter 9 8/46 次へ