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
**列名**を入力します。
**OK**をクリックします。