SQLウィンドウは、データを処理するためのユーザーインターフェースを提供します。SQLウィンドウでは、SQLステートメントを体系的に評価し、ステートメントの実行詳細および処理全体の所要時間情報を確認できます。
このドキュメントでは、employeeテーブルを例に、クエリSQLステートメントを体系的に評価する方法を説明します。
説明
本文中で使用されているのはすべてサンプルデータです。実際の状況に応じてデータを置き換えることができます。
前提条件
現在のテナントのデータベースアカウントとパスワードを使用してSQLコンソールにログインできること。
実行計画
SQLコンソールにログインした後、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ステートメントを実行する際、結果セットタブ内の 実行詳細から、SQL実行の基本情報、時間統計、I/O統計、実行されたSQLステートメント、計画統計、および概要を確認できます。
- OceanBase V4.2.4 以降 かつ OceanBase V4.3.0 より前 のバージョン、または OceanBase V4.3.3.1 以降 のバージョンでは、クエリ/挿入/更新/削除/データベース内のデータ検索を実行する際、実行プロファイルでSQL実行の実行解析をリアルタイムで照会できます。実行解析により、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統計 |
|
ノード属性
ノード属性は、演算子の出力情報とランタイムデータ(Other statistics)で構成されています。
より詳細なノード出力情報については、OceanBase公式ドキュメントを参照してください。例えば、Table Scan演算子の属性が該当します。
ランタイムデータは演算子ごとに異なる意味を表し、重要なモニタリング指標です。このような指標については、V$SQL_MONITOR_STATNAMEビューを参照してください。
実行計画
SQLウィンドウ内の 実行計画 とは異なり、実行プロファイル 内の実行計画は実際に実行された計画を表示するため、実際の行数 と 実際のコスト が含まれます。SQLウィンドウはDBMS_XPLANツールパッケージを使用して現在の計画を取得します。
また、右上の テキストビュー
をクリックすることでビューを切り替え、より包括的な計画情報を照会し、さらなるSQLチューニングを容易に行えます。
全リンク診断
OceanBaseのバージョンが4.2.0以上の場合(OBProxyを介して接続する必要がある場合は、OBProxy V4.2.0以降のバージョンが必要)、SQLウィンドウはSQLの全リンク診断の可視化情報を表示することをサポートしています。詳細については、OceanBase全リンクトレースの概要を参照してください。
SQLウィンドウは、OceanBaseの全リンク診断データに対して、トレースビュー と リストビュー の2種類の可視化ビューを提供しています。
TraceビューはSQL実行の総タイムラインを表示し、ノードの展開と折りたたみをサポートし、検索によるハイライトも可能です。タイムライン上にマウスカーソルを置くと、現在のノードの実行ノード、開始時刻、終了時刻、および詳細データを確認できます。
テーブルビュー
をクリックするとビューを切り替えることができ、Spanをさまざまな次元でフィルタリングおよびソートできます。
SQLウィンドウは、JSON形式の全リンク診断データをエクスポートすることをサポートしており、OpenTracingプロトコルに互換性があります。これをJaegerにインポートしてさらに分析することができます。
DB時間
実行履歴 タブで、DB時間 情報の後ろにあるヘルプアイコンにマウスカーソルを合わせると、ポップアップメッセージにSQL実行の全リンク時間情報が表示されます。これにより、各段階の時間が実際と一致しているかどうかを確認できます。