すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:Spark SQL 診断

最終更新日:Mar 29, 2026

Spark SQL 診断機能を使用して、Spark SQL クエリにおけるパフォーマンスボトルネックをトラブルシューティングします。たとえば、以下の操作が可能です。

  • 実行計画ツリーの可視化により、一目で最も遅い演算子を特定します。

  • 結合時のデータ肥大化(結合出力の行数が入力行数を上回る状態)を検出します。

  • スキャン対象データのスキュー(テーブル間でデータが不均等に分散し、ロングテール効果を引き起こす状態)を検出します。

診断は、過去 14 日間に正常終了した Spark SQL クエリのみ対象となります。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

Spark SQL クエリの診断

  1. AnalyticDB for MySQL コンソール にログインします。左上隅からリージョンを選択し、左側ナビゲーションウィンドウで クラスターData Lakehouse Edition をクリックします。Data Lakehouse Edition タブで対象クラスターを見つけ、クラスター ID をクリックします。

  2. 左側ナビゲーションウィンドウで、診断および最適化 > Spark SQL 診断および最適化 を選択します。クエリ一覧には、診断可能な直近の Spark SQL クエリが表示されます。下表に各カラムの説明を示します。

    カラム説明
    SQL実行された SQL ステートメント。
    クエリ IDクエリの ID。
    実行 IDSpark SQL アプリケーション内における SQL ステートメントのシーケンス ID。
    ステータス実行ステータス。有効な値: 完了実行中失敗
    開始時刻クエリの送信時刻。
    実行時間SQL ステートメントの実行に要した合計時間。
    最大演算子排他的時間実行中に、ある演算子がリソースを排他的に保持した最長時間。
    ピークメモリ使用量クエリのピークメモリ使用量。
    スキャン済みデータストレージレイヤーからコンピュートレイヤーへ返されたデータ量。
    操作診断 をクリックして、クエリの実行詳細および診断結果を開きます。
  3. 診断対象のクエリを見つけ、操作 カラムの 診断 をクリックします。

  4. クエリプロパティ ページで、実行計画 タブをクリックして、実行計画ツリーの階層図を表示します。

  5. 実行計画ツリーの右側にある クエリレベルの診断結果 をクリックして、クエリの診断結果および最適化の提案を表示します。

クエリレベルの診断結果

AnalyticDB for MySQL は、クエリレベルの統計情報を分析し、既知のパフォーマンスパターンを検出した際に、最適化の提案を提示します。

結合時のデータ肥大化

意味: 結合演算子の出力行数が入力行数を上回っています。これは、過剰な計算リソースおよびメモリリソースを消費する非合理的な結合であり、クエリの実行速度を低下させます。

対処方法: 結合実行前に、結合に関与しない行をあらかじめフィルター処理することで、結合演算子が処理する必要のあるデータ量を削減します。

スキャン対象データ量のスキュー

意味: クエリ実行時に、複数のテーブル間でスキャン対象データ量に著しい差異が生じています。ロングテール効果(最も遅いタスクが全体の完了時間を決定する現象)により、データ読み取り時間が延長され、クエリパフォーマンスが劣化します。

対処方法: パーティション間でデータがより均等に分散されるよう、分散キーとして適切なカラムを選択し、各テーブルのスキャン量を削減します。