クエリ プロファイル
クエリ プロファイルを使用すると、クエリの実行の詳細を視覚化できます。 クエリ プロファイルは、クエリの実行中のパフォーマンスに対するボトルネックのトラブルシューティングに役立ちます。 次に例を示します。
- 各クエリ演算子と関連メトリック (費やされた時間、処理された行数、処理された行数、メモリ消費量など) を視覚化できます。
- クエリ実行の最も遅い部分をひとめで特定し、クエリに対する変更の影響を評価できます。
- 爆発的に増加する結合やフル テーブル スキャンなど、SQL のステートメントでよくある間違いを発見し、修正できます。
要件
クエリ プロファイルを表示するには、クエリの所有者であるか、クエリを実行した SQL ウェアハウスで少なくとも CAN MONITOR permission が必要です。
クエリ プロファイルを表示する
次の手順を使用して、クエリ履歴からクエリ プロファイルを表示できます。
クエリ履歴を表示します。
クエリの名前をクリックします。 画面の右側にクエリの詳細パネルが表示されます。
[See query profile] (クエリ プロファイルの表示) をクリックします。
Note
"クエリ プロファイルを使用できません" が表示される場合、このクエリに使用できるプロファイルはありません。 クエリ キャッシュから実行されるクエリでは、クエリ プロファイルは使用できません。 クエリ キャッシュを回避するには、
LIMIT
の変更や削除など、わずかな変更をクエリに加えます。グラフ ビュー (既定) でクエリ プロファイルを表示するには、[グラフ ビュー] をクリックします。 クエリ プロファイルをツリーとして表示するには、[ツリー ビュー] をクリックします。
- グラフ ビューは、あるノードから別のノードにデータがどのように流れるかを視覚化するために最適化されています。
- ツリー ビューは、実行時間が最も長い演算子の特定など、クエリのパフォーマンスに関する問題をすばやく見つけるために最適化されています。
グラフ ビューまたはツリー ビューでは、ページの上部にあるタブのいずれかをクリックして、各クエリの演算子に関する詳細を表示できます。
- 費やされた時間: 各操作に費やされた時間の集計。 タスクの合計時間も指定されます。
- 行: 各クエリの演算子の影響を受ける行の数とサイズ。
- ピーク メモリ: 各クエリの演算子が消費したピーク メモリ。
Note
一部の非 Photon 操作は、グループとして実行され、共通のメトリックを共有します。 この場合、すべての操作は、特定のメトリックの親演算子と同じ値を持ちます。
グラフ ビューでは、演算子をクリックして詳細なメトリックを表示できます。 ツリー ビューでは、演算子の名前をクリックして、関連する詳細を表示できます。
各ノードには、その操作のラベルが付けられます。 既定では、一部の操作のメトリックは非表示になります。 これらの操作は、多くの場合、パフォーマンスのボトルネックではありません。 すべての操作の情報を表示したり、追加のメトリックを表示したりするには、ページの上部にある をクリックして、[詳細モードを有効にする] をクリックします。 最も一般的な操作は、次のとおりです。
- スキャン: データがデータソースから読み取られ、行として出力されました。
- 結合: 複数のリレーションからの行が単一の行セットに結合 (インターリーブ) されました。
- ユニオン: 同じスキーマを使用する複数のリレーションからの行が単一の行セットに連結されました。
- シャッフル: データが再配布または再パーティション分割されました。 シャッフル操作は、クラスター上のエグゼキューター間でデータを移動するため、リソースに関してはコストが高くなります。
- ハッシュおよびソート: 行がキーによってグループ化され、各グループ内で
SUM
、COUNT
、MAX
などの集計関数を使用して評価されました。 - フィルター: 入力が
WHERE
句などによる条件に従ってフィルター処理され、行のサブセットが返されます。 - (再利用) 交換: 目的のパーティション分割に基づいて複数のクラスター ノードにデータを再配布するには、シャッフルまたはブロードキャスト交換が使用されます。
- 収集制限: 返される行の数が、
LIMIT
ステートメントを使用して切り詰められました。 - 順序付けと射影: クエリ結果の上位 N 行が返されました。
(省略可能)Databricks SQL クエリの場合は、Apache Spark UI でクエリ プロファイルを表示することもできます。 ページの上部にある [ kebab] メニューをクリックし、[Spark UI で開く ] をクリック。
クエリ プロファイルを閉じるには、パネルの下部にある [クエリ プロファイルの表示をクリックします。
UI の次の部分でクエリ プロファイルにアクセスすることもできます。
SQL エディターから: クエリが完了すると、ページの下部近くのリンクに経過時間と返された行数が表示されます。 そのリンクをクリックして、 query の詳細 パネルを開きます。 [See query profile] (クエリ プロファイルの表示) をクリックします。
Note
新しい SQL エディター有効になっている場合 (パブリック プレビュー)、リンクはノートブックと同じように表示されます。
ノートブックから: ノートブックが SQL ウェアハウスまたはサーバーレス コンピューティングにアタッチされている場合は、クエリを含むセルの下にあるリンクを使用してクエリ プロファイルにアクセスできます。 パフォーマンスを確認をクリックして実行履歴を開きます。 ステートメントをクリックして、 query の詳細 パネルを開きます。
Delta Live Tables パイプライン UI から: パイプライン UI の Query History タブからクエリ履歴とプロファイルにアクセスできます。 デルタ ライブ テーブル パイプラインの Access クエリ履歴を参照してください
ジョブ UI から: これはサーバーレス ジョブにのみ適用されます。 ジョブ UI からクエリ プロファイルを開く方法については、「ワークフロー用のサーバーレス コンピューティングを使用して Azure Databricks ジョブを実行する」を参照してください。
クエリ プロファイルの詳細を表示する
クエリ プロファイルには、クエリの最上位レベルの演算子が逆順で一覧表示され、最後の演算子が最初に一覧表示されます。 クエリ プロファイルのさまざまな部分を理解するには、次の手順を使用します。
- クエリ プロファイル ビューの上部付近にある Time spent、 Rows、 Peak memory ボタンを使用して、各カテゴリの最上位レベルのメトリックを表示します。
- 操作に関する詳細を表示するには、演算子をクリックします。たとえば、期間、メモリ使用量、返される行の数とサイズ、使用されているグループ化と集計の式または出力属性に関する説明やメトリックが表示されます。
- 演算子の詳細を閉じるには、[ クエリの詳細に戻る] をクリックします。
- クエリ プロファイルを閉じるには、右側のパネルの下部にある クエリ プロファイルの表示 をクリックします。
クエリ プロファイルを共有する
クエリ プロファイルを他のユーザーと共有するには、次のように操作します。
- クエリ履歴を表示します。
- クエリの名前をクリックします。
- クエリを共有するには、次の 2 つの選択肢があります。
- 他のユーザーがクエリに対する管理可能アクセス許可を持っている場合は、クエリ プロファイルの URL を共有できます。 [共有] をクリックします。 URL がクリップボードにコピーされます。
- そうではなく、他のユーザーが管理可能アクセス許可を持っていないか、ワークスペースのメンバーではない場合は、クエリ プロファイルを JSON オブジェクトとしてダウンロードできます。 ダウンロード。 JSON ファイルは、ローカル システムにダウンロードされます。
クエリ プロファイルをインポートする
クエリ プロファイルの JSON をインポートするには、次のように操作します。
クエリ履歴を表示します。
右上にあるケバブ メニュー をクリックし、[クエリ プロファイルのインポート (JSON)] を選択します。
ファイル ブラウザーで、共有された JSON ファイルを選択し、[開く] をクリックします。 JSON ファイルがアップロードされ、クエリ プロファイルが表示されます。
クエリ プロファイルをインポートすると、ブラウザー セッションに動的に読み込まれ、ワークスペースには保持されません。 表示するたびに、再インポートする必要があります。
インポートしたクエリ プロファイルを閉じるには、ページの上部にある [X] をクリックします。