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

ApsaraDB for OceanBase:実行分析

最終更新日:Jan 21, 2025

OceanBase 開発者センター (ODC) の SQL ウィンドウは、データを処理するためのユーザーインターフェースを提供します。このウィンドウ内で、SQL 文の評価、実行詳細の確認、実行タイムライン全体の分析を行うことができます。このトピックでは、employee テーブルを例として使用して、SQL クエリを評価する方法を示します。

実行計画

  1. SQL ウィンドウで、employee テーブルのデータをクエリする SQL 文を入力します。

    image

     SELECT `emp_no`, `birthday`, `name`, `time`, `test_col`, `status`, `age`, `state` FROM `employee`;
    
  2. 上の画像に示すように、SQL 文を選択し、 [実行計画] アイコンをクリックします。これにより、SQL 文を実行する前に実行データを見積もることができます (EXPLAINPLAN)。見積もり実行データは、実行後の実際結果と若干異なる場合があることに注意してください。

    image

  3. プランの詳細テキスト ビュー ページで、 をクリックして、フォーマットされた計画の表示に切り替えます。

実行詳細

説明
  • V4.2.4 より前の OceanBase バージョンでは、SQL 文を実行すると、結果ページの [実行詳細] タブで、基本的な実行詳細、時間統計、I/O 統計、SQL 実行文、計画統計、およびアウトラインを表示できます。

  • OceanBase V4.2.4 以降、OceanBase V4.3.0 より前、または OceanBase V4.3.3.1 以降では、実行プロファイルを使用して SQL 実行をリアルタイムで監視できます。実行プロファイルは、実行詳細をすばやく表示し、パフォーマンスボトルネックを特定するのに役立ちます。

実行プロファイルへのアクセス

  • オプション 1: SQL 文が SQL ウィンドウで実行されている間に、 [ログ] タブの [実行プロファイルの表示] をクリックします。

    重要

    SQL 文の実行時間が 1 秒未満の場合、 [ログ] タブで実行プロファイルを表示するオプションは使用できない場合があります。

  • オプション 2: SQL 文が実行された後、結果の [実行プロファイル] アイコンをクリックします。

    image

  • オプション 3: SQL 文が実行された後、 [実行レコード] タブの [TRACE ID] をクリックして、実行プロファイルにアクセスします。

    image

実行分析

実行の詳細 または実行プロファイルは、SQL 実行計画の視覚的表現とデータ収集を提供します。オペレーターの実行ステータス、時間詳細、I/O、およびランタイムデータをリアルタイムで監視しながら、全体の実行時間を集計およびランク付けできます。

image

実行プロファイルを使用すると、次のことができます。

  • OceanBase の実際の実行計画をグラフィカル形式で表示し、オペレーターの実行シーケンスと関係を理解しやすくします。

  • 実行概要、リアルタイム I/O 統計、および上位 5 つの時間のかかる操作を使用して、実行のボトルネックをすばやく特定します。ODC は、CPU 時間に基づいてこれらをソートします。

  • オペレーターの実行ステータス、タイミング、および出力行をリアルタイムで監視します。オペレーターノードをクリックすると、画面の右側にオペレーターの属性、時間詳細、I/O、およびその他のランタイムデータが表示されます。

    image

  • スタンドアロンおよび分散実行計画を分析します。並列オペレーターは、DB 時間、I/O メモリ、および出力行でソートして、データスキューをすばやく特定できます。

SQL 実行概要

タイプ

説明

SQL 実行概要

image

  • CPU 時間: すべてのオペレーターの合計 CPU 時間。

  • I/O 待機時間: すべてのオペレーターの合計 I/O 待機時間。

  • DB 時間: 計画の実行にかかった合計時間。

  • キュー時間: キューでの待機時間。

  • 計画タイプ: 実行計画のタイプ。ローカル (LOCAL)、リモート (REMOTE)、または分散 (DISTRIBUTED) のいずれかです。

  • プランキャッシュのヒット: プランキャッシュがヒットしたかどうかを示します。

オペレーター実行概要

image

  • CPU 時間: 現在のオペレーターによって消費された合計 CPU 時間。並列オペレーターの場合、これはすべてのスレッドの合計時間です。

  • I/O 待機時間: 現在のオペレーターの I/O 待機時間。ディスク I/O とネットワーク待機時間が含まれます。並列オペレーターの場合、これはすべてのスレッドの合計時間です。

  • 並列処理: 並列処理の次数。現在のオペレーターに対して並列に実行されているスレッド数を示します。

  • スキュー: スキューは、並列スレッド間の出力時間のばらつきを示します。値が高いほど、1 つのノードまたはスレッドがオペレーター全体を遅らせている可能性があることを示唆しています。

  • プロセス名: スレッド番号。対応するノードの IP とポートを特定するために使用できます。

  • 変更時間: 現在のスレッドが行を出力するのにかかった時間。最初の行と最後の行の出力の時間差として計算されます。

I/O 統計

タイプ

説明

オペレーター I/O 統計

  • 出力行: 出力された行数。

  • 開始回数: オペレーターが再スキャンされた回数。たとえば、Nested Loop Join オペレーターの右の子ノードは複数回スキャンされる場合があります。

  • 最大メモリ: 実行中にオペレーターによって使用された最大ワークエリアメモリ。

  • 最大ディスク: 実行中にオペレーターによって使用された最大ディスク容量。

ノード属性

ノード属性は、オペレーターの出力情報とランタイムデータ (その他の統計) で構成されます。

ノードの出力情報の詳細については、OceanBase の公式ドキュメント (例: テーブルスキャンオペレーターの属性) を参照してください。

ランタイムデータはオペレーターによって異なり、重要な監視メトリックを表します。これらのメトリックの詳細については、V$SQL_MONITOR_STATNAME ビューを参照してください。

実行計画

SQL ウィンドウの [実行プラン] とは異なり、[実行プロファイル] には、[実際の行数][実際のコスト] を含む、実際の実行プランが表示されます。 ODC は、DBMS_XPLAN パッケージを使用して現在の実行プランを取得します。

image

右上隅にある [テキスト表示] をクリックしてビューを切り替え、より詳細な計画情報にアクセスして、SQL の最適化をさらに進めることもできます。

image

エンドツーエンドトレース診断

4.2.0 より上のバージョンの OceanBase (OBProxy 経由で接続する場合は OBProxy バージョン 4.2.0 以降) では、ODC は SQL のエンドツーエンドトレース診断に関する情報の表示をサポートしています。詳細については、「OceanBase エンドツーエンドトレースの概要」を参照してください。

ODC は、OceanBase のエンドツーエンドトレース診断データに対して、 [トレース表示] と トレース ビュー の両方の可視化を提供します。

[トレース表示] は、SQL 実行タイムライン全体を示し、ノードの展開と折りたたみ、および検索のハイライトをサポートしています。タイムラインにカーソルを合わせると、実行ノード、開始時刻と終了時刻、および詳細データを表示できます。

image

テーブル ビュー9 (1) をクリックすると、ビューを切り替えて、さまざまなディメンションにわたるスパンのフィルタリングとソートを有効にできます。

image

ODC は、OpenTracing プロトコルと互換性のある JSON 形式でのエンドツーエンドトレース診断データのエクスポートもサポートしています。このデータを Jaeger にインポートして、さらに分析できます。

DB 時間

image

[実行レコード] タブで、[DB 時間] の横にあるツールチップ アイコンにカーソルを合わせると、SQL 実行のエンドツーエンドのタイミング情報が表示されます。これは、各ステージで費やされた時間が実際の実行と一致するかどうかを確認するのに役立ちます。

参照