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