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

ApsaraDB for OceanBase:SQL の詳細

最終更新日:Jan 21, 2025

SQL の基本情報を確認した後、SQL テキストをクリックして SQL の詳細ページに移動できます。 SQL の詳細ページには、SQL 文の SQL テキスト、最適化の提案、サンプリングの詳細、診断の詳細、サンプリング履歴、実行履歴、および実行計画が表示されます。 表示される情報は、特定の SQL 文の診断状況によって異なります。

SQL テキスト

[SQL テキスト] セクションでは、完全な SQL テキストを表示できます。 [テーブル構造] を選択すると、対応するテーブルのスキーマを表示できます。

image

最適化の提案

説明

最適化の提案がない場合は、このセクションは表示されません。

[最適化の提案] セクションでは、診断時間範囲内の SQL 文のすべてのエラーと、対応する最適化の提案を表示できます。 現在、システムでは次の 2 種類の最適化の提案が提供されています。

  • プランの推奨システムは、過去 1 週間の SQL 文の実行計画を分析し、CPU 時間の点で他のプラン (ローカルプランまたは分散プラン) よりも大幅に優れたプランを推奨します。 実行計画が推奨されている場合は、推奨される実行計画と既存の実行計画の違いを分析することをお勧めします。 推奨される実行計画に変更のための DDL 操作が含まれていない場合は、バインドできます。 推奨される実行計画をバインドした後、最適化の効果を確認します。 実行が最適化されていない場合は、ロールバックを実行します。

    プラン推奨ルール: 最新プランの CPU 時間に基づいて候補プランが推奨されます。 最新プランの CPU 時間が短い場合は、候補プランの CPU 時間が最新プランの CPU 時間よりも大幅に短い場合にのみ、候補プランが推奨されます。 最新プランの CPU 時間が長い場合は、候補プランの CPU 時間が最新プランの CPU 時間よりもわずかに短いだけでも、候補プランが推奨されます。

    最新プランの CPU 時間

    候補プランの CPU 時間

    [0, 1) ミリ秒

    候補プランの CPU 時間は、最新プランの CPU 時間の 1/10 です。

    [1, 10) ミリ秒

    候補プランの CPU 時間は、最新プランの CPU 時間の 1/5 です。

    [10, 100) ミリ秒

    候補プランの CPU 時間は、最新プランの CPU 時間の 1/2 です。

    [100, 1000) ミリ秒

    候補プランの CPU 時間は、最新プランの CPU 時間の 2/3 です。

    [1000, ∞) ミリ秒

    候補プランの CPU 時間は、最新プランの CPU 時間の 5/6 です。

  • インデックスの推奨

    インデックス推奨の具体的なルールは次のとおりです。

    • 等価クエリ列は前に配置され、任意の順序で結合されます。

    • 範囲クエリが実行される場合、選択性が最も高い範囲クエリ列は、等価クエリ列の後に配置されます。

    • 範囲クエリが実行されない場合、ソートの削除条件が満たされると、ソート列は等価クエリ列の後に配置されます。

    • 述語の他の列は、インデックスの後に配置されます。 この場合、インデックスは半角インデックスです。

    • SELECT 文の他の列は、カバリングインデックスを構築するためにインデックスの後に配置されます。

    • カバリングインデックスに含まれる列が 8 列以下の場合、カバリングインデックスが推奨されます。 それ以外の場合は、半角インデックスが推奨されます。

    • インデックスは、CPU 時間が 10 ミリ秒を超えるか、応答時間が 20 ミリ秒を超える場合にのみ推奨されます。

优化建议..png

SQL 診断の詳細

説明

診断の詳細がない場合は、このセクションは表示されません。

[SQL 診断の詳細] セクションでは、診断時間範囲内で同じ問題が発生した回数と、最新の診断の詳細 (時間範囲、実行回数、CPU 時間、最終実行時間など) を表示できます。 三角形の矢印をクリックすると、診断の根拠とトラブルシューティングの提案をさらに表示できます。1

SQL サンプリングの詳細

説明

SQL 文のサンプリング詳細は、低速 SQL 文の詳細ページにのみ表示されます。

[SQL サンプリングの詳細] セクションでは、現在の SQL 文のサンプリング詳細を表示できます。 [列の管理] をクリックして、表示する列を指定し、その順序を調整できます。 [エクスポート] をクリックすると、SQL サンプリング詳細のリストをダウンロードできます。image

集約 SQL の詳細

説明

集約 SQL 文の詳細は、その詳細ページにのみ表示されます。

[集約 SQL の詳細] セクションでは、関連するすべての SQL 情報を表示できます。 [列の管理] をクリックして、表示する列を設定し、列の順序を調整します。 [+] をクリックすると、統計期間中の最後のエラーとエラーの概要情報が表示されます。

image

物理実行計画

[物理実行計画] タブでは、非集約 SQL 文と集約 SQL 文で表示が異なります。

非集約 SQL 文の物理実行計画

  • [プラン ハッシュ] を展開して、対応する物理実行計画の詳細を表示します。

    実行プランの詳細ページで:

    • 実行ステップとサーバー実行計画における演算子の具体的な適用プロセスを表示します。 演算子の基本的な紹介については、「SQL 実行計画の概要」をご参照ください。

    • 実行計画内のオブジェクト名にカーソルを合わせると、テーブル構造や DDL インデックス情報などを表示できます。

      • オブジェクトがテーブルの場合、テーブル構造を表示できます。image

      • オブジェクトがインデックスの場合、DDL インデックス情報などを表示できます。image

  • 右上隅の [カスタム時間] をクリックし、ドロップダウンリストから [過去 1 時間] または [過去 12 時間] を選択して、クエリ期間をすばやくフィルタリングします。 クエリ期間をカスタマイズすることもできます。 現在、過去 15 日間の物理実行計画のみをクエリできます。

  • [過去 30 日間のバインド履歴] をクリックすると、過去 30 日間の物理実行計画のバインドレコードを表示できます。

  • [プランキャッシュの更新] をクリックすると、テナント内のこの SQL 文の実行計画キャッシュがクリアされます。 次にこの SQL 文が実行されると、新しい実行計画が生成されます。

  • [バインド] をクリックすると、この実行計画に従って SQL 文が強制的に実行されます。 実行計画が SQL 文にバインドされている場合、[バインド済み] と表示されます。image

集約 SQL の物理実行計画

説明

SQL 集約は、指定された時間範囲内で類似の SQL 文を集約するために使用されます。 含まれる SQL 文のリストは、指定された時間範囲によって異なります。 したがって、実行計画がバインドされているかどうかの表示は現在表示できません。 アクティブなアウトラインと最適化レコードの詳細については、最適化センターに移動してください。

  • [プランハッシュ] を展開して、対応する物理実行計画と集約 SQL の詳細を表示します。

    • [実行計画の詳細] タブで次の操作を行います。

      • 実行ステップとサーバー実行計画における演算子の具体的な適用プロセスを表示します。 演算子の基本的な紹介については、「SQL 実行計画の概要」をご参照ください。

      • 実行計画内のオブジェクト名にカーソルを合わせると、テーブル構造や DDL インデックス情報などを表示できます。

        • オブジェクトがテーブルの場合、テーブル構造を表示できます。

        • オブジェクトがインデックスの場合、DDL インデックス情報などを表示できます。

    • [集約 SQL の詳細] タブで、集約 SQL のリスト ([SQL テキスト][SQL ID] など) を表示します。image

  • 右上隅の [カスタム時間] をクリックし、ドロップダウンリストから [過去 1 時間] または [過去 12 時間] を選択して、クエリ期間をすばやくフィルタリングします。 クエリ期間をカスタマイズすることもできます。 現在、過去 15 日間の物理実行計画のみをクエリできます。

  • [バインド] をクリックすると、この実行計画に従って SQL 文が強制的に実行されます。 実行計画が SQL 文にバインドされている場合、[バインド済み] と表示されます。

SQL 実行履歴

[SQL 実行履歴] タブでは、非集約 SQL 文と集約 SQL 文で表示が異なります。

非集約 SQL 文の実行履歴

過去 1 時間、過去 12 時間、またはカスタムの時間範囲の SQL 文の実行履歴と統計チャートを表示できます。

  • SQL 実行履歴: 現在の SQL 文の実行履歴を表示できます。

    • [すべてのノード] をクリックし、ドロップダウンリストからターゲットノードを選択します。

    • [カスタム時間] をクリックし、ドロップダウンリストから [過去 1 時間] または [過去 12 時間] を選択して、クエリ期間をすばやくフィルタリングします。 クエリ期間をカスタマイズすることもできますが、次の制限事項に注意してください。

      • 過去 15 日間の SQL 実行履歴のみを表示できます。

      • 最小範囲制限:

        • 3 日以内のデータの場合: 選択した時間範囲は 1 分以上である必要があります。

        • 3 ~ 7 日のデータの場合: 選択した時間範囲は 5 分以上である必要があります。

        • 7 日を超えるデータの場合: 選択した時間範囲は 20 分以上である必要があります。

    • 右上隅の [列の管理] をクリックし、頻繁に表示するフィールドを選択します。

    • [エクスポート] をクリックして、SQL ステートメントの実行履歴をダウンロードします。

      image

  • SQL 実行時間: 右側のカテゴリをクリックすると、対応する実行時間を表示できます。

    image

  • 合計実行回数: [合計実行回数] をクリックし、ドロップダウンリストから対象データを選択できます。

    image

集約 SQL 文の実行履歴

過去 1 時間、過去 12 時間、またはカスタムの時間範囲の SQL 文の実行履歴と統計チャートを表示できます。

  • SQL 実行履歴: 現在実行中の SQL 文の実行履歴を表示できます。[列の管理] を右上隅でクリックし、頻繁に表示する必要がある情報を選択して、[エクスポート] をクリックすると、実行履歴のリストをダウンロードできます。

    image.png

  • 集約 SQL ディメンションまたは単一 SQL ディメンションで集約 SQL 文の統計チャートを表示できます。 集約 SQL ディメンションでは、[SQL 実行時間 - CPU 時間] チャートと [合計実行回数] チャートがデフォルトで表示されます。

    • 集計された SQL ディメンションは、関連付けられた SQL 文の全体的なデータを収集します。

      SQL 実行時間: ドロップダウンリストから [データベース時間合計][平均時間消費][経過時間] などを選択して、統計情報を表示できます。

      image

      合計実行回数: [合計実行回数] をクリックし、ドロップダウンリストから対象データを選択できます。

      image

    • 単一の SQL ディメンションでは、デフォルトで CPU 使用率別にソートされた上位 10 件の SQL 文が表示されます。他の SQL 文をフィルタリングして選択できます。

      SQL 実行時間: ドロップダウンリストから [データベース時間合計][平均時間消費][経過時間] などを選択して統計情報を表示できます。また、SQL ID で SQL 文を検索し、特定の SQL 文に関する情報を表示することもできます。

      image

      合計実行回数: [合計実行回数] をクリックし、ドロップダウンリストから対象データを選択できます。また、SQL ID で SQL 文を検索し、特定の SQL 文に関する情報を表示することもできます。

      image

テーブル情報

[テーブル情報] タブでは、インデックスを表示およびバインドできます。 インデックスが SQL 文にバインドされている場合は、[バインド済み] と表示されます。 このタブでは、テーブル統計も表示できます。

image

詳細設定

調整設定
  1. [調整設定] セクションで、[調整の設定] をクリックします。

  2. [最大同時リクエスト数] を入力し、[OK] をクリックします。

  3. ポップアップ ダイアログ ボックスで、[OK] をクリックします。image

アウトライン設定
  1. [アウトライン設定] セクションで、[アウトラインの設定] をクリックします。

  2. [アウトライン] を入力し、[OK] をクリックします。

  3. ポップアップ ダイアログ ボックスで、[OK] をクリックします。image