7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 8

SQL Serverの実行計画の確認やチューニング検討に便利なPlan Explorerについて

Posted at

Plan Explorerとは

Plan Explorerは、Microsoft SQL Serverのクエリパフォーマンスを分析・最適化するためのツールです。
このツールは、実行計画を視覚的に表示し、クエリの実行効率を改善するための情報を提供してくれます。

もともとはSentryOne社によって提供されていましたが、2021年に買収されて以降はSolarWinds社に提供されています。

本記事では、Plan Explorerの基本的な使い方や活用例について紹介します。

インストール方法

https://www.solarwinds.com/ja/free-tools/plan-explorer からインストーラをダウンロードできます。
2024年12月現在はユーザー登録が必須となっています。

実行計画の表示方法

Plan Explorerを使うとこのように実行計画を表示することができます。
image.png

表示方法はいくつかあるため、以下に紹介します。

方法A. Plan Explorerで直接SQLを実行して取得する

Plan Explorerからサーバー・DBを指定して接続することができます。
image.png

接続後、CommandTextタブにSQLを書いてF5を押すと実際にクエリが実行されて実際の実行計画(Actual Plan)が取得できます。
image.png
↓ 実行後、Resultsタブが表示
image.png

Ctrl+Lで推定実行計画(Estimated Plan)を取得することもできます。

方法B. sqlplanファイルを読み込む

SSMSで実行計画を保存し、保存した.sqlplanファイルをPlan Explorerで読み込むことができます。
image.png
↓sqlplanファイルを開く

方法C. SSMSアドインから開く

Plan Explorerのインストール時にSSMSアドインもインストールしていると、SSMSの実行計画の表示画面からPlan Explorerを開くメニューが追加されます。
image.png

方法D. XMLを貼り付ける

XML形式の実行計画をコピーしてPlan Explorerに貼り付けることで表示することもできます。
image.png
↓表示されたXMLをコピー
image.png

別の環境で取得した実行計画を手元の環境で確認したい場合などに有用です。

Plan Explorerの活用例

ここからはPlan Explorerを使った活用例について紹介します。

実際の行数と推定行数との比較

実際の実行計画では「ShowEstimatedPlan」ボタンを押すことができ、これを押すことで、実際の行数と推定行数を比較することができます。

例えばこちらにパフォーマンスの悪い、実際の実行計画があります。

image.png
インデックスからの読み込みとKeyLookUpとの結合が大量に走っていることで非常にパフォーマンスが悪くなっています。

こちらを推定実行計画に切り替えるとレコード量が非常に少ない見積もりであることがわかります。
image.png

上記から、オプティマイザの推定としては取得行数が非常に少ない見込みであったことがパフォーマンスの悪い実行計画が作られた原因であり、この乖離をなくせれば改善に繋げられるだろうという予測が立てられます。

Warning表示

Plan Explorerは、クエリの実行計画に関する警告を表示することができます。
例えば、次の画像では処理されている行数が多くないためパフォーマンスは一見そこまで悪くないように思えます。
image.png

ただし、Warningが出ている上記矢印のテーブルにカーソルを当てると次のように詳細な情報が確認できます。
image.png

条件句があり、返される行数は39行であるもののIndexSeekされておらず、9700万行超の読み込みが発生してボトルネックになっていることがわかります。

チューニングの履歴管理

Plan Explorerでは、実行の履歴を管理し、コメントを残すことができます。
例えば次のようにチューニングの過程でどのような変更をして、その時にどのような実行計画だったかなどを残すことができます。
image.png

終わりに

以上、実行計画の確認やチューニング検討に便利なPlan Explorerについて紹介しました。
紹介しきれなかった機能もありますので、興味がありましたら実際にインストールして使ってみてください。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?