メインコンテンツまでスキップ

クエリ プロファイル

クエリプロファイルを使用して、クエリ実行の詳細を視覚化できます。クエリ プロファイルは、クエリの実行中に発生するパフォーマンスのボトルネックのトラブルシューティングに役立ちます。例えば:

  • 各クエリ演算子と、費やした時間、処理された行数、処理された行数、メモリ消費量などの関連するメトリクスを視覚化できます。
  • クエリ実行の最も遅い部分を一目で特定し、クエリに対する変更の影響を評価できます。
  • SQL 文の一般的な誤り (エクスプロード・ジョインやフル・テーブル・スキャンなど) を検出して修正できます。

必要条件

クエリ プロファイルを表示するには、クエリの所有者であるか、クエリを実行したSQLウェアハウスに対する少なくとも CAN MONITOR アクセス許可 を持っている必要があります。

クエリ プロファイルを表示する

次の手順で、クエリ履歴からクエリプロファイルを表示できます。

  1. サイドバーの 履歴アイコン。 クエリー履歴 をクリックします。

  2. クエリの名前をクリックします。 クエリの詳細パネルが画面の右側に表示されます。

    クエリ実行の概要の簡易ビュー

    クエリの概要には、次のものが含まれます。

    • クエリの状態: クエリには、現在のステータス ( キュー登録済み実行中完了失敗またはキャンセル 済み) のタグが付けられます。
    • ユーザーとコンピュートの詳細: このクエリ実行のユーザー名、コンピュートの種類、ランタイムの詳細を参照してください。
    • ID: これは、特定のクエリ実行に関連付けられた汎用一意識別子 (UUID) です。
    • クエリステートメント: このセクションには、完全なクエリ ステートメントが含まれています。クエリが長すぎてプレビューに表示できない場合は、 ...全文を表示するための行数が増え ました。
    • クエリメトリクス: クエリ分析の一般的なメトリクスは、クエリテキストの下に表示されます。 一部のメトリクスとともに表示されるフィルター アイコンは、スキャン中にプルーニングされたデータの割合を示します。
    • クエリ プロファイルを参照してください。 この概要には、クエリ プロファイルの有向非巡回グラフ (DAG) のプレビューが示されています。これは、クエリの複雑さと実行フローをすばやく見積もるのに役立ちます。[ クエリ プロファイルの表示 ] をクリックして、詳細な DAG を開きます。
    • このクエリの最長演算子を参照してください。 このボタンをクリックすると、[ トップオペレーター パネルが開きます。このパネルには、クエリで最も長く実行されている演算子が表示されます。
    • 実時間表示のクエリ: スケジューリングの開始からクエリ実行の終了までの合計経過時間がサマリーとして提供されます。スケジュール設定、クエリの最適化とファイルのプルーニング、および実行時間の詳細な内訳が概要の下に表示されます。
    • クエリソース: リストされたオブジェクトの名前をクリックして、クエリソースに移動します。
    • 集計タスク時間: すべてのノードのすべてのコアでクエリを実行するのにかかった合計時間を表示します。複数のタスクが並行して実行される場合は、ウォールクロックの期間よりも大幅に長くなる可能性があります。タスクが使用可能なノードを待機していた場合は、ウォールクロックの期間よりも短くなる可能性があります。
    • 入力/出力 (IO): クエリの実行中に読み取られたデータと書き込まれたデータの詳細を表示します。
  3. [ クエリ プロファイルの表示 ] をクリックします。画面の右側に 詳細 パネルが開きます。

    プロファイルの詳細をクエリします。

注記

クエリプロファイルは利用できません が表示されている場合、このクエリに使用できるプロファイルはありません。クエリ プロファイルは、 クエリ キャッシュから実行されるクエリでは使用できません。 クエリ キャッシュを回避するには、 LIMITの変更や削除など、クエリに簡単な変更を加えます。

クエリ プロファイルの詳細を表示する

詳細なクエリプロファイルには、パネルの左側にサマリーメトリクス、右側に演算子のグラフビューが含まれています。

クエリメトリクスの探索

クエリ プロファイルの左側には、次のタブがあります。

  1. 詳細アイコン 詳細: クエリの概要メトリクスを表示する 詳細 パネルを開きます。

  2. 上位のオペレーターのアイコン トップオペレーター: [ トップオペレーター ] パネルが開き、クエリで使用される最も負荷の高い演算子が表示されます。これは、最適化の機会を特定するのに役立ちます。

  3. クエリ テキスト アイコン クエリ テキスト: クエリの全文を表示する クエリテキスト パネルを開きます。

注記

Photon以外の一部の操作はグループとして実行され、共通のメトリクスを共有します。 この場合、すべての操作は、特定のメトリクスの親演算子と同じ値を持ちます。

DAGの探索

クエリ プロファイルの右半分には、クエリの有向非巡回グラフ (DAG) が表示されます。グラフビューには、 所要時間メモリのピーク などのメトリクスが表示されます。 各メトリクスをクリックすると、表示されるレポートメトリクスが変更されます。

DAG は、次の方法で操作できます。

  • 検索バーを使用して、さまざまな演算子または列を強調表示します。
  • ズームインまたはズームアウトして、DAG のさまざまな部分に焦点を合わせます。
  • 演算子をクリックすると、詳細なメトリクスと説明が表示されます。 グラフの右側にあるパネルには、操作の詳細が表示されます。

Databricks SQL クエリの場合は、Spark UI でクエリ プロファイルを表示することもできます。ページの上部にある ケバブメニューのアイコン。 ケバブメニューをクリックし、[ Spark UIで開く ] をクリックします。

デフォルトでは、一部のオペレーションのメトリクスは非表示になっています。これらの操作がパフォーマンスのボトルネックの原因になる可能性は低いです。すべてのオペレーションの情報を表示し、追加のメトリクスを表示するには、ページの上部にある [ ケバブメニューのアイコン。 ] をクリックし、[ 詳細モードを有効にする ] をクリックします。

一般的な操作

最も一般的な操作は次のとおりです。

  • スキャン : データはデータソースから読み取られ、行として出力されました。
  • 結合 :複数のリレーションの行が1つの行にまとめられました(インターリーブ)。
  • ユニオン : 同じスキーマを使用する複数のリレーションの行が 1 つの行セットに連結されました。
  • シャッフル : データが再配布または再パーティション分割されました。 シャッフル操作は、クラスター上のエグゼキューター間でデータを移動するため、リソースに関してコストがかかります。
  • ハッシュ/ソート : 行はキーでグループ化され、各グループ内の SUMCOUNTMAX などの集計関数を使用して評価されました。
  • フィルター : 入力は、 WHERE 句などの条件に従ってフィルタリングされ、行のサブセットが返されます。

パフォーマンス知見

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

クエリが実行されると、Databricks は、クエリパフォーマンスの改善につながるパフォーマンスに関する洞察を返すことがあります。クエリープロファイルで知見が2か所に表示されます。

  • クエリーの詳細パネルには、タスク全体の所要時間に対する予測される影響度によってランク付けされた、最も重要な知見の概要が表示されます。
  • 詳細クエリプロファイルのパフォーマンス知見タブには、各知見の完全な詳細が表示されます。

サポートされている知見とその意味については、「クエリーパフォーマンスの知見」を参照してください。

Genie Codeで最適化

クエリに活用できる知見がある場合は、 Optimize を選択し、Genie Codeを開いてください。クエリーの変更が必要な知見については、Genie Codeがクエリーを書き換え、変更内容を承認のために提示します。テーブルまたはコンピュートの変更を伴う知見については、Genie Code は推奨されるアクションを平易なテキストで要約します。

Genie Code の操作の詳細については、Genie Codeを参照してください。

クエリ プロファイルを共有する

クエリ プロファイルを別のユーザーと共有するには:

  1. クエリ履歴を表示します。
  2. クエリの名前をクリックします。
  3. クエリを共有するには、次の 2 つの選択肢があります。
    • 他のユーザーがクエリに対する CAN MANAGE アクセス許可を持っている場合は、クエリ プロファイルの URL を共有できます。 共有 をクリックします。URL がクリップボードにコピーされます。
    • それ以外の場合、他のユーザーが CAN MANAGE アクセス許可を持っていないか、ワークスペースのメンバーでない場合は、クエリ プロファイルを JSON オブジェクトとしてダウンロードできます。 ダウンロード ボタンをクリックすると、 JSON ファイルがローカル システムにダウンロードされます。

クエリ プロファイルのインポート

クエリプロファイルのJSONをインポートするには:

  1. クエリ履歴を表示します。

  2. 右上のケバブメニュー ケバブメニューのアイコン。 をクリックし、 クエリプロファイルのインポート(JSON) を選択します。

  3. ファイルブラウザで、共有されたJSONファイルを選択し、[ 開く ]をクリックします。 JSON ファイルがアップロードされ、クエリ プロファイルが表示されます。

    クエリプロファイルをインポートすると、ブラウザセッションに動的にロードされ、ワークスペースには保持されません。 表示する場合は、その都度再インポートする必要があります。

  4. インポートしたクエリ プロファイルを閉じるには、ページの上部にある X をクリックします。

クエリ プロファイルにアクセスする

クエリ プロファイルには、UI の次の部分からアクセスすることもできます。

  • SQL エディタから : クエリの実行中および実行後に、ページの下部付近にリンクに、経過時間と返された行数が表示されます。そのリンクをクリックして、 クエリの詳細 パネルを開きます。[ クエリ プロファイルの表示 ] をクリックします。

    エディター出力からクエリ履歴を開く

注記

新しい SQL エディターが有効になっている場合 (パブリック プレビュー)、リンクはノートブックと同じように表示されます。

  • ノートブックから : ノートブックが SQLウェアハウスまたはサーバレス コンピュートに接続されている場合は、クエリを含むセルの下のリンクを使用してクエリ プロファイルにアクセスできます。 [ パフォーマンスの表示 ] をクリックして、実行履歴を開きます。 ステートメントをクリックして、 クエリの詳細 パネルを開きます。

    クエリ履歴ノートブック出力を開く

  • Lakeflow Spark宣言型パイプライン UI から : パイプライン UI の [書き込みー履歴] タブからクエリ履歴とプロファイルにアクセスできます。 パイプラインのクエリ履歴にアクセスするを参照してください。

  • ジョブ UI から : SQLウェアハウスとサーバレス コンピュートでジョブ実行のクエリ プロファイルにアクセスできます。 サーバレス コンピュートでのジョブ実行については、ジョブ UI でクエリの詳細を表示する方法については、 ジョブ実行のクエリ詳細の表示 を参照してください。

次のステップ