SSMS だけじゃない!SQL Server で実行プランを取得するその他の方法

2024-04-02

SQL Server でクエリ実行プランを取得するには、いくつかの方法があります。

  • SSMS の [実行プラン] ボタン
  • SET SHOWPLAN_ALL オプション
  • sys.dm_exec_query_plan DMV
  • クエリのトレース

方法の詳細

これは、最も簡単で迅速な方法です。

  1. SQL Server Management Studio (SSMS) でクエリを開きます。
  2. ツールバーの [パフォーマンス] セクションで、[実行プラン] ボタンをクリックします。
  3. 実行プランが表示されます。

このオプションを使用すると、クエリの推定実行プランと実際の実行プランの両方を取得できます。

  1. クエリウィンドウで、次のクエリを実行します。
SET SHOWPLAN_ALL ON;
  1. クエリを実行します。

この DMV を使用すると、実行中のクエリの実行プランを取得できます。

SELECT * FROM sys.dm_exec_query_plan(plan_handle);
  1. plan_handle は、クエリのハンドルです。

クエリのトレースを使用すると、実行プランを含む、クエリエクセキューションの詳細情報を取得できます。

  1. SSMS で、[トレース] メニューを選択します。
  2. [新しいトレース] を選択します。
  3. [イベント] タブで、[クエリエクゼキューション] イベントを選択します。
  4. [開始] をクリックします。
  5. トレース結果を分析します。

補足

  • 実行プランは、クエリの処理方法を理解するのに役立ちます。
  • 実行プランを分析することで、クエリの性能を向上させることができます。
  • いくつかの方法を組み合わせて、実行プランを取得することができます。

用語解説

  • クエリ実行プラン:クエリの処理方法を記述した計画
  • SSMS:SQL Server Management Studio
  • DMV:Dynamic Management View
  • トレース:クエリエクセキューションの詳細情報を記録する機能



SELECT *
FROM dbo.Customers;
SET SHOWPLAN_ALL ON;

SELECT *
FROM dbo.Customers;

SET SHOWPLAN_ALL OFF;
SELECT *
FROM sys.dm_exec_query_plan(@@plan_handle);
SELECT *
FROM dbo.Customers;



SQL Server でクエリ実行プランを取得するその他の方法

Profiler は、SQL Server のパフォーマンスを監視するためのツールです。 Profiler を使用して、クエリの詳細な実行情報を取得できます。

Extended Events は、Profiler の後継となるツールです。 Extended Events を使用して、クエリの詳細な実行情報を取得できます。

SSMS のクエリエディターには、実行プランを表示するための機能がいくつかあります。

  • [Ctrl] + [Shift] + E キーを押す
  • 右クリックメニュー から [実行プランの表示] を選択する

クエリの実行プランを XML 形式で取得

次のクエリを実行して、クエリの推定実行プランを XML 形式で取得できます。

SELECT query_plan FROM sys.dm_exec_sql_plan(N'SELECT * FROM dbo.Customers');
SELECT JSON_QUERY(query_plan) FROM sys.dm_exec_sql_plan(N'SELECT * FROM dbo.Customers');

注意事項

  • 上記の方法の中には、SQL Server のバージョンによっては使用できないものがあります。
  • クエリ実行プランを取得するには、適切な権限が必要です。

sql sql-server performance


PostgreSQLでGROUP BYクエリで文字列フィールドを連結するサンプルコードと実行方法

PostgreSQLデータベース文字列フィールドを含むテーブル次のテーブルを想定します。このテーブルには、名前と都市を含むユーザー情報が格納されています。この情報を使用して、各都市に住むユーザーの名前をカンマ区切りで連結したリストを作成します。...


SQL Serverとの比較も!PostgreSQLでFROM句結合サブクエリを使いこなすための詳細ガイド

PostgreSQLとSQL Serverは、どちらも強力な関係データベース管理システム(RDBMS)ですが、構文や機能に若干の違いがあります。今回の記事では、FROM句の結合を使用したサブクエリという観点から、PostgreSQLとSQL Serverの記述方法を比較し、それぞれのポイントを解説します。...


Windows タスク スケジューラを使って毎日実行されるジョブをスケジュールする方法

SQL Server エージェントは、SQL Server でジョブを作成してスケジュールするためのツールです。ジョブは、Transact-SQL スクリプトを実行したり、データベースメンテナンスタスクを実行したり、外部プログラムを実行したりするなど、さまざまなタスクを実行できます。...


【業務効率化】SQLで同一テーブルを2つの外部キーで結合してデータ分析を効率化

SQLで同一テーブルを2つの外部キーで結合するには、JOIN句を使用します。具体的には、ON句で結合条件を指定します。例以下のemployeesテーブルがあるとします。このテーブルには、従業員のID、所属部門ID、上司ID、名前が格納されています。...


【初心者向け】PostgreSQLで「列が存在しない」エラーを解決する方法

この問題には、主に以下の2つの原因が考えられます。識別子のクォートPostgreSQLでは、テーブル名や列名などの識別子をクォート (" または ') で囲むことで、特殊文字や大文字小文字を区別することができます。しかし、クォートの付け方が間違っていると、エラーが発生する可能性があります。...