実行プランの読み方をまとめてみる - その6 ( 実行プランの種類について説明してみる ) -
夕方からの今年最後の飲み会までまだ時間があるので、本日、二本目のビールを飲みながら実行プランの種類についてまとめてみます。
グラフィカルな実行プランについては、散々使ってきたので割愛します。それ以外の実行プランだと、テキストの実行プラン、XMLの実行プランの二つがあります。すべて実行してみました。
- テキスト系の実行プラン
- SET STATISTICS PROFILE ON
SET STATISTICS PROFILE ON; GO SELECT SalesPersonID, COUNT(SalesPersonID) FROM Sales.SalesOrderHeader GROUP BY SalesPersonID GO SET STATISTICS PROFILE OFF;
- SET SHOWPLAN_ALL ON
SET SHOWPLAN_ALL ON; GO SELECT SalesPersonID, COUNT(SalesPersonID) FROM Sales.SalesOrderHeader GROUP BY SalesPersonID GO SET SHOWPLAN_ALL OFF;
- SET SHOWPLAN_TEXT ON
SET SHOWPLAN_TEXT ON; GO SELECT SalesPersonID, COUNT(SalesPersonID) FROM Sales.SalesOrderHeader GROUP BY SalesPersonID GO SET SHOWPLAN_TEXT OFF;
- XML系の実行プラン
- SET STATISTICS XML ON
SET STATISTICS XML ON; GO SELECT SalesPersonID, COUNT(SalesPersonID) FROM Sales.SalesOrderHeader GROUP BY SalesPersonID GO SET STATISTICS XML OFF;
- SET SHOWPLAN_XML ON
SET SHOWPLAN_XML ON; GO SELECT SalesPersonID, COUNT(SalesPersonID) FROM Sales.SalesOrderHeader GROUP BY SalesPersonID GO SET SHOWPLAN_XML OFF;
各実行プランの特徴は下記の通りです。
- テキスト系の実行プラン
- SET STATISTICS PROFILE ON
クエリの実行結果を得ることができます。CPUとか、推定行数などチューニングに必要が情報を得ることができます。 - SET SHOWPLAN_ALL ON
クエリの実行結果を得ることができません。SET STATISTICS PROFILE ON とほとんど同じですが、取得した行数や実行回数の情報が取得できません。 - SET SHOWPLAN_TEXT ON
クエリの実行結果を得ることができません。どのような結合をしているかくらいは判断できます。CPUとか、推定行数などに関しては取得できません。
- XML系の実行プラン
- SET STATISTICS XML ON
クエリの実行結果を得ることができます。CPUとか、推定行数などチューニングに必要が情報を得ることができます。 - SET SHOWPLAN_XML ON
クエリの実行結果を得ることができません。CPUとか、推定行数などチューニングに必要が情報を得ることができます。
通常使用するのは、複雑のクエリをチェックする場合に全体を俯瞰しやすい SET STATISTICS PROFILE ON を使用し、更に詳細をチェックする場合に、グラフィカルな実行プランを使用するといった感じです。トレースを取得したりする場合は、SET SHOWPLAN_ALL ON や SET SHOWPLAN_XML ON を使用したりします。(好みです(`・ω・´))
※酔っ払いながら、記事書くのはいいですねぇ。そろそろ、出かける準備しよう。
- 出版社/メーカー: サントリー
- メディア: 食品&飲料
- この商品を含むブログを見る