クエリ実行計画
EXPLAIN コマンドは、ステートメントの実行計画を表示します。 これは、プランナーがステートメントを実行するためにとったアプローチの詳細を確認できることを意味します。 例: テーブルのスキャン方法、必要な行を結合するために使用される結合アルゴリズム、ステートメントの実行コスト、その他の情報。
実行コストは、ステートメントの実行にかかる時間に対するプランナーの推測です。 測定は、相対コスト単位で行われます。 実行コストには、起動と合計の 2 つのオプションがあります。 開始コストは、最初の行が処理されるまでにかかる時間を示し、合計コストは、すべての行を処理するのにかかる時間を示します。
PhpStorm は、 EXPLAIN コマンドに対して以下の動作を提供します。
計画の表示: その声明はあくまで予定されているものです。
説明する分析する: このステートメントは、計画されただけでなく、実際に実行されます。 この場合、実行時間の統計情報をミリ秒単位で確認できます。 このアクションは、対応するデータベースでのみ利用できます。
これらの操作は、コードエディターのツールバーにあるドロップダウンメニューにあります。 また、 コードエディターのコンテキストメニューからも呼び出すことができます。 ドロップダウンにも Explain Plan (Raw) と Explain Analyse(生) のアクションを表示させるには、 メニューに追加してください。

結果は、 サービス ツールウィンドウの専用の クエリプラン タブに、ツリーと表を組み合わせたフォーマットで表示されます。 タブの詳細については、 サービスツールウィンドウのトピックを参照してください。
クエリプランをコピーする
クエリプランは、JSON や XML など、データベースのネイティブ形式でコピーできます。
SQL ステートメントを右クリックし、
を選択します。
または、ツールバーの
計画の表示 をクリックし、 計画の表示 を選択します。
クエリプラン タブで、左側のツールバー上部にある
元のクエリプランをコピー をクリックします。
これは、PostgreSQL、Amazon、Redshift、MySQL、MariaDB、Oracle、Microsoft、SQL Server、Snowflake でサポートされています。

クエリプランを視覚化する
SQL ステートメントを右クリックし、
を選択します。
または、ツールバーの
計画の表示 をクリックし、 計画の表示 を選択します。
デフォルトでは、クエリプランのツリー表示が サービス ツールウィンドウの クエリプラン タブに表示されます。 クエリ実行プランを表示するには、
ダイアグラムの表示… をクリックするか、 Ctrl+Alt+Shift+U を押します。
クエリプランで利用可能なさまざまなビューは、個別の内部タブに表示されます。 これらの内部タブは、 クエリプラン タブの下部からアクセスできます。 デフォルトでは非表示になっており、複数のタブが開いている場合にのみ表示されます。
生データプランを開く
SQL ステートメントを右クリックし、
を選択します。
または、ツールバーの
計画の表示 をクリックし、 計画の表示 を選択します。
デフォルトでは、クエリプランのツリー表示が サービス ツールウィンドウの クエリプラン タブに表示されます。 タブの左側ツールバーの
Raw をクリックします。
IntelliJ IDEA は Raw の内部タブに生データの実行計画プランを表示します。 説明プランツリーも 操作ツリー の内部タブで引き続き利用できます。
Explain Plan (Raw) の場合、ボタンは ツリーの表示 に置き換わり、 操作ツリー の内部タブが Raw の隣に開きます。

EXPLAIN のフレームグラフを生成する
SQL ステートメントを右クリックし、
を選択します。
または、ツールバーの
計画の表示 をクリックし、 計画の表示 を選択します。
デフォルトでは、クエリプランのツリー表示が サービス ツールウィンドウの クエリプラン タブに表示されます。
フレームグラフ をクリックし、以下のオプションから選択します。
合計コスト: すべての行を返すのにかかる時間。
開始コスト: 最初の行が処理されるまでにかかる時間。
PhpStorm は、新しく開いたグラフを別の内部タブに表示し、ツリー表示は オペレーションツリー の内部タブに保持します。
