SQLウィンドウは、データを処理するためのユーザーインターフェースを提供します。SQLウィンドウでは、SQLステートメントを体系的に評価し、詳細な実行情報とエンドツーエンドの所要時間の内訳を確認できます。
本記事では、employee テーブルを例に、クエリSQLステートメントを体系的に評価する方法を紹介します。
注意
本記事のデータはすべて例です。必要に応じて実際のデータに置き換えることができます。
前提条件
OceanBase Cloudコンソールで、分析型データベースへの接続に使用するスーパーアカウントを作成していること。
分析型クラスタインスタンス内のアカウント管理権限を持っていること。
ワークスペースを作成済み、またはワークスペースに所属していること。
実行計画
OceanBase Cloudコンソールにログインし、ワークスペースに移動します。SQLウィンドウでSQL文を編集し、
employeeテーブルのデータをクエリします。SELECT `emp_no`, `birthday`, `name`, `time`, `test_col`, `status`, `age`, `state` FROM `employee`;上図のように、SQL文を選択し、実行計画アイコン をクリックします。SQL文を実行する前に、実行データを予測することができます (EXPLAIN PLAN)。予測データは、文実行後の実際の結果と若干異なる場合があります。
プランの詳細 ページで、フォーマット情報を表示 をクリックし、フォーマット表示ページに切り替えます。
実行詳細
説明
- OceanBase V4.2.4 より前のバージョンでは、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 ステートメントの実行が完了したら、結果の実行プロファイルアイコンをクリックします。
方法 3:SQL ステートメントの実行が完了したら、TRACE ID(実行記録 タブ内)をクリックして、実行プロファイルにアクセスします。
実行分析
実行の詳細 または 実行プロファイル は、SQL 実行計画を視覚化して表示し、関連データを収集します。演算子の実行状態、時間の詳細、I/O、ランタイムデータをリアルタイムで監視できるほか、全体の実行時間を集計して並べ替えることもできます。
実行プロファイルを利用することで、以下が可能です:
OceanBase の実際の実行計画をグラフィカルに表示し、演算子の実行順序と相互関係を直感的に理解します。
実行概要、リアルタイム I/O 統計、および時間が最もかかった上位 5 つの操作を通じて、実行ボトルネックを迅速に特定します。SQL ウィンドウは CPU 時間順にソートされます。
演算子の実行状態、時間、出力行数をリアルタイムで監視します。演算子ノードをクリックすると、画面右側で演算子の属性、時間の詳細、I/O、その他のランタイムデータを確認できます。
スタンドアロン実行計画と分散実行計画を分析します。並列演算子は、DB 時間、I/O メモリ、出力行数でソートでき、データの偏りを迅速に特定するのに役立ちます。
SQL 実行概要
項目 |
説明 |
|---|---|
| SQL 実行概要 |
|
| 演算子実行概要 |
|
I/O 統計
パラメータ |
説明 |
|---|---|
| 演算子I/O統計 |
|
ノード属性
ノード属性は、演算子の出力情報と実行時データ(その他の統計情報)で構成されています。
ノードの出力情報の詳細については、OceanBaseの公式ドキュメントを参照してください。例えば、Table Scan演算子の属性を参照してください。
演算子ごとに実行時データは異なり、これらのデータは重要な監視指標です。これらの指標の詳細については、V$SQL_MONITOR_STATNAMEビューを参照してください。
実行計画
SQLウィンドウ内の 実行計画 とは異なり、実行プロファイル は実際の実行計画を表示します。これには、実際の行数 と 実際のコスト が含まれます。SQLウィンドウはDBMS_XPLANパッケージを使用して現在の計画を取得します。
また、右上の テキストビュー をクリックすると、ビューを切り替えてより詳細な計画情報を確認し、SQLをさらに最適化できます。
エンドツーエンド・トレース診断
OceanBaseバージョン4.2.0以上(OBProxy経由で接続する場合は、OBProxyバージョンも4.2.0以上である必要があります)では、SQLウィンドウはSQLのエンドツーエンド・トレース診断情報の表示をサポートしています。詳細については、OceanBaseエンドツーエンド・トレースの概要を参照してください。
SQLウィンドウは、OceanBaseのエンドツーエンド・トレース診断データに対して、トレースビュー と テーブルビュー の2種類の可視化方法を提供します。
トレースビューはSQL実行の全体的なタイムラインを表示し、ノードの展開・折りたたみや検索によるハイライト表示をサポートします。タイムライン上にマウスカーソルを合わせると、実行ノード、開始時間・終了時間、および詳細データを確認できます。
テーブルビュー をクリックするとビューを切り替えることができ、異なる軸でSpanをフィルタリング・ソートできます。
SQLウィンドウは、エンドツーエンド・トレース診断データをJSON形式でエクスポートすることもサポートしており、この形式はOpenTracingプロトコルと互換性があります。データをJaegerにインポートしてさらに分析することができます。
DB時間
実行記録 タブで、DB時間 の横にあるヒントアイコンにカーソルを合わせると、SQL実行のエンドツーエンドの所要時間情報を確認できます。これにより、各段階の所要時間が実際の実行状況と一致しているかどうかを確認するのに役立ちます。