Top SQLとは、データベース内で実行頻度が高く、システムリソースを多く消費し、データベースのパフォーマンスに大きな影響を与えるSQL文を指します。OB Cloudは、総実行時間で上位2000位にランクインしたSQLを表示します。
説明
Top SQLは、以下のバージョンのOBKVインスタンスでのみサポートされています:[V4.2.4, V4.3.0)
Top SQLリストのクエリ
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、**インスタンス**をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに入ります。
左側のナビゲーションペインで**診断をクリックし、診断ページでリアルタイム診断タブを選択します。システムはデフォルトでSQLタブの下の上位SQL**を表示します。
(オプション)フィルター条件を設定します。
データベース:現在のクラスタ内の任意のデータベースを選択します。
ノード:現在のデータベースの任意のノードを選択します。
時間範囲:最後の5分間、過去30分間、過去1時間、過去3時間、**過去6時間**のデータを確認できます。カスタムの時間範囲(最大7日間)も設定可能ですが、以下の制限に注意してください:
- 最大範囲の制限:選択した時間範囲は24時間を超えてはなりません。
- 最小範囲の制限:
- 3日以内:選択した時間範囲は1分以上である必要があります。
- 3日から7日以内:選択した時間範囲は5分以上である必要があります。
SQL ID:クエリするSQL IDを入力します。複数のIDを入力する場合は、半角文字の , または ; で区切ります。
SQLテキスト:クエリするSQLテキストのキーワードを入力します。検索結果には、そのキーワードを含むSQLが表示されます。定数検索はサポートされていません。
その他の条件:**+追加をクリックし、条件を追加する**パネルで、メトリクス、演算子、メトリクス値を設定します。クエリ時に、メトリクスの条件を満たすSQLが検索結果リストに表示されます。
クイックフィルター:フルテーブルスキャン、マルチパーティションスキャン、複数のリモート実行、ハードパース、実行中にエラー発生、**再実行する**をサポートします。
**クエリ**ボタンをクリックします。
上位SQLタブは、デフォルトで以下のメトリクスを表示します:SQLテキスト、SQL ID、データベース、合計実行数、CPU使用率 (%)、データベース合計実行時間 (ms)、平均実行時間 (ms)、合計エラー数、最大応答時間 (ms)、CPU時間 (ms)、プラン生成時間 (ms)、アクション。
SQLテキストの前の**+をクリックすると、最後のエラーと統計期間中に報告されたエラーの概要**を確認できます。
**データベース**でSQLテキストをフィルタリングします。
合計実行数、CPU使用率 (%)、データベース合計実行時間 (ms)、平均実行時間 (ms)、合計エラー数、最大応答時間 (ms)、CPU時間 (ms)、**プラン生成時間 (ms)**でSQLテキストをソートします。
**アクション列で、サンプルを見る**をクリックしてSQLサンプルを確認します。
- 特定のSQLの**操作列で...をクリックし、スロットリングの設定**を選択すると、レート制限を設定できます。複数のSQLを選択すると、一括でレート制限を設定できます。
リストの右上にある**集約 in クエリ**を選択すると、SQLをAggregate Inで表示しますが、統計データには影響しません。Aggregate InのSQLを含む複数のSQLを選択すると、一括でレート制限を設定できます。
説明
集約inクエリとは、SQL文のin句における定数パラメータの個数を無視し、各in句を常に1つの定数パラメータしか持たないものとして一括扱いするルールに基づき、SQL文をパラメータ化してSQL IDを計算することを指します。SQL IDが同じSQLは同一種類と見なされ、集約されます。
... をクリックし、テーブルをダウンロード をクリックして、Top SQLリストをダウンロードします。
アイコン
をクリックし、表示された 列の管理 ウィンドウで、より多くのメトリクスを照会します。
Top SQLの比較
**上位SQLタブで、リストの右上にあるTop SQL 比較**をクリックすると、同一SQLが同一ノード内の異なる時間帯や異なるノードでどのように実行されたか、また単一のSQLが異なる時間帯や異なるノードでどのように実行されたかを比較できます。
異なる期間の比較:同一ノード上で同一SQLのベースライン期間と比較期間の実行状況を比較分析し、**詳細の比較および応答時間の傾向の比較**の情報を確認します。
異なるノードの比較:同一SQLのベースラインノードと比較ノードでの実行状況を比較分析し、**詳細の比較および実行時間比率の傾向の比較**の情報を確認します。
単一SQLの異なる期間の比較:単一SQLまたは集計SQLのベースライン期間と比較期間の実行状況を比較分析し、**データベースの総消費時間および合計実行数**の情報を確認します。
単一SQLの異なるノードの比較:単一SQLまたは集計SQLの異なる分析ノードでの実行状況を比較分析し、**データベースの総消費時間および合計実行数**の情報を確認します。
説明
- 同一SQLとは、同一のデータベースとSQL IDを指します。
- 異なるノードを比較する場合、結果は異なるノードで同一SQLが実行された場合にのみ出力されます。
- SQL IDを入力してから、該当SQLの操作列で... > 単一SQL比較を選択することで、単一SQLの異なる時間帯や異なるノードでの比較分析も可能です。
カスタム列
**上位SQLタブで、リストの右上にある列をカスタマイズ**をクリックすると、必要なその他の指標をカスタマイズできます。
ポップアップウィンドウで、**列式**を設定します。例:(@avgCpuTime * @avgDiskReads) / 2
**列名**を入力します。
**決定する**をクリックします。