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

Database Autonomy Service:クエリガバナンス

最終更新日:Aug 28, 2026

Database Autonomy Service (DAS) は、オフラインデータ分析を用いて、前日分のすべてのご利用のインスタンスにおけるスロー SQL クエリを毎日 01:00 に分析し、自動的にタグ付けします。DAS はスロー SQL クエリを自動的に分類し、最適化の優先順位を付けて、ガバナンス提案およびデータエクスポートを提供します。

前提条件

  • 対象のデータベースインスタンスは PolarDB for MySQL です。

  • この機能は、中国本土、中国 (香港)、およびシンガポールリージョンのデータベースインスタンスをサポートしています。

    説明

    2023 年 4 月 1 日以降、クエリガバナンス機能は中国 (香港) リージョンおよびシンガポールリージョンのデータベースインスタンスをサポートしています。

制限事項

  • クエリガバナンスは T+1 オフライン分析を使用します。最適化不要 として SQL クエリにタグを付けた場合、最適化可能な SQL の件数変化は翌日に反映されます。

  • DAS による事前定義済みの SQL タグは無効化できません。

  • 各データベースインスタンスについて、DAS は実行回数上位 200 件のスロー SQL クエリのみを分析します。そのため、各インスタンスの 低速 SQL テンプレートの数 の最大数は 200 です。

基本概念

用語

説明

最適化可能な SQL

すべてのスロー SQL ステートメントから、最適化不要な SQL ステートメント を除外した残りのステートメントが 最適化可能な SQL です。

最適化不要な SQL

DAS が自動的に DAS を無視 とタグ付けしたクエリ、およびユーザーが手動で 最適化不要 とタグ付けしたクエリを含みます。

DAS を無視

DAS が自動的に 最適化不要 とタグ付けする SQL ステートメントで、showcreatexacommitrollbackselect sleep、または explain で始まるものなどが該当します。

操作手順

  1. にログインします。DASコンソール.

  2. 左側のナビゲーションウィンドウで、インスタンスモニター.

  3. 表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。

  4. 左側メニューで、リクエスト分析 > 低速クエリログ > クエリのガバナンス を選択します。

  5. クエリのガバナンス ページで、分析結果を確認します。

    • [クエリガバナンス結果の概要]:自動的にタグ付けおよび分類されたクエリの統計データを確認できます。

      説明

      DAS は、DAS Enterprise Edition が有効になっているインスタンスに対してのみ SQL 実行の失敗回数 をカウントします。

    • [クエリガバナンスの傾向]:選択した時間範囲におけるクエリガバナンス結果の傾向を確認できます。

    • [上位ランキング]:[最もパフォーマンスの高いインスタンス] と [最もパフォーマンスの低いインスタンス] のリストを確認できます。

      • パフォーマンス最悪インスタンス:各データベースインスタンスのスロー SQL クエリ実行数を確認できます。

      • パフォーマンス最良インスタンス:各データベースインスタンスのスロー SQL クエリ実行数の変化を確認できます。負数はスロー SQL クエリ実行数の減少を示し、最適化が成功したことを意味します。正数は増加を示します。

      DAS は、[最適化可能な SQL] のトップランキングリストに注目することを推奨します。

    • [最適化対象の SQL]:フィルター条件を設定して、最適化したい SQL クエリを特定できます。

      説明

      DB 名、SQL キーワード、ルールタグ、およびデータベースのユーザー名で SQL クエリをフィルターできます。これらの条件は、論理 AND 演算子で結合されます。

      • 複数の DB 名を指定するには、コンマ (,) で区切ります。それらの間の論理演算子は OR です。

      • 複数の SQL キーワードを指定するには、スペースで区切ります。それらの間の論理演算子は AND です。

      • 複数のデータベースユーザー名を指定するには、コンマ (,) で区切ります。それらの間の論理演算子は OR です。

      • 複数のルールタグを選択できます。ルールタグ間の論理演算子は OR です。

      • 特定の SQL サンプルの 操作 列で、提案 をクリックして詳細な最適化の提案を表示します。

      • 特定の SQL サンプルの 操作 列で、タグの追加 をクリックして SQL クエリに手動でタグを付けます。タグの意味の詳細については、「手動で追加された SQL タグ」をご参照ください。

        一度に複数の SQL クエリにタグを追加することもできます。

      • 特定の SQL サンプルの 操作 列で、サンプル をクリックして、SQL クエリのスローログサンプルの詳細を表示します。

      • 特定の SQL サンプルの 操作 列で、推移 をクリックして、SQL クエリのスローログ分析の詳細を表示します。スローログ分析の詳細については、「スローログ」をご参照ください。

      最適化が必要な SQL クエリのデータをエクスポートして共有できます。詳細については、「ベストプラクティス」をご参照ください。

    • [失敗した SQL]:フィルター条件を設定して、表示したい SQL クエリを特定できます。

      説明
      • DAS は、DAS Enterprise Edition が有効になっているインスタンスの 失敗した SQL テンプレートのみをカウントします。

      • DB 名と SQL キーワードで SQL クエリをフィルターできます。これらの条件は、論理 AND 演算子で結合されます。

        • 複数の DB 名を指定するには、コンマ (,) で区切ります。それらの間の論理演算子は OR です。

        • 複数の SQL キーワードを指定するには、スペースで区切ります。それらの間の論理演算子は AND です。

      特定の SQL サンプルの 操作 列で、サンプル をクリックして SQL サンプルの詳細を表示します。

ベストプラクティス

  • タグを使用して、SQL クエリを最適化する必要があるかどうかを判断します:

    クエリガバナンスの中核となるロジックは、すべての [スロー SQL クエリ] を [最適化不要] と [最適化可能な SQL] の 2 つのカテゴリに分類することです。次の SQL タグを使用してクエリをすばやくフィルタリングし、優先度に基づいて最適化できます。

    ID

    タグ名

    レベル

    推奨

    説明

    NEW_SQL

    新規スロー SQL

    重大

    ✔️

    過去 7 日間に出現していないスロー SQL クエリ。

    DAS_IGNORE

    DAS 無視

    注意

    DAS が自動的に最適化不要とタグ付けするクエリ。例:showcreatexacommitrollbackselect sleep、または explain で始まる SQL ステートメント。

    FUZZY_LIKE

    あいまい LIKE クエリ

    注意

    like 句を使用してあいまい一致を行うため、インデックスを利用できません。

    HAS_EXPR

    式を含む

    注意

    クエリに式が含まれています。計算に関与するカラムではインデックスを利用できません。

    LARGE_IN_LIST

    大きな IN リスト

    注意

    IN 句に 200 個を超える要素が含まれており、プログラムによって生成された可能性があります。関連するカラムではインデックスを利用できません。

    SELECT_STAR

    SELECT 全カラム

    注意

    SELECT を使用する際は、必要なフィールドのみを指定し、不要なカラムを返すことによるパフォーマンスの問題やリソースの浪費を回避してください。

    INDEX_ADVISOR

    インデックス提案

    注意

    ✔️

    SQL 実行を高速化するためにインデックスを作成する提案。

    COMPLEX_JOIN

    複雑な JOIN

    注意

    3 つ以上のテーブルを join しないでください。join するフィールドはデータの型が同一である必要があります。複数テーブル結合の場合、結合フィールドにインデックスが設定されていることを確認してください。

    CROSS_DB

    クロスデータベースクエリ

    注意

    インスタンス間でデータベースおよびテーブルを移行する際、クロスデータベースクエリが利用できなくなる可能性があります。

    SUBQUERY

    サブクエリを含む

    注意

    クエリにサブクエリが含まれています。JOIN を使用して書き換えることで、パフォーマンスを向上させることを検討してください。

    DEEP_PAGING

    ディープページング

    重大

    クエリで LIMIT 句を使用してディープページングを行っています。JOIN を使用してクエリを書き換えることを推奨します。

    WITHOUT_PREDICATE

    述語なし

    重大

    ✔️

    ステートメントに述語が含まれていません。全表スキャンが発生していないか確認してください。

    NULL_COMPARE

    NULL 比較エラー

    重大

    IS NULL または IS NOT NULL を使用して NULL 値をチェックしてください。値と NULL の直接比較は常に NULL になります。

    COUNT_NOT_STAR

    COUNT 構文の不適切な使用

    重大

    COUNT(*) を使用し、count(column_name) や count(constant) は使用しないでください。count(*) は SQL92 で定義された行数カウントの標準構文であり、データベースに依存せず、NULL 値または非NULL 値の影響を受けません。count(column_name) は、カラムが NULL 値を持つ行をカウントしません。

    LARGE_ROWS_EXAMINED

    過剰な行スキャン

    注意

    クエリが平均で 50,000 行以上をスキャンしています。過剰なスキャンはリソースを多く消費し、クエリを遅延させ、データベースパフォーマンス全体に悪影響を及ぼす可能性があります。

    説明

    より絞り込んだフィルター条件の使用を検討してください。

    LARGE_ROWS_SENT

    過剰な行返却

    注意

    クエリが平均で 5,000 行以上を返しています。返却行数を減らすことを検討してください。

    NO_ADVICE

    提案なし

    注意

    分析による提案がありません。

    PERIOD_SQL

    定期実行 SQL

    注意

    毎日決まった時刻に実行されます。

    DAS は、[最適化可能な SQL] に注目することを推奨します。以下の表で説明するように、クエリに [最適化不要] のタグを付けることで、[最適化可能な SQL] カテゴリのクエリ数を継続的に減らすことができます。次の SQL タグは手動で追加できます。

    ID

    タグ名

    レベル

    説明

    USER_IGNORE

    最適化不要

    注意

    このタグを追加すると、DAS は翌日の最適化対象 SQL の統計から該当クエリを除外します。

    DAS_IMPORTANT

    重要 SQL

    注意

    SQL クエリを重要とマークします。

    DAS_NOT_IMPORTANT

    重要でない SQL

    注意

    SQL クエリを重要でないとマークします。

    DAS_IN_PLAN

    最適化予定

    注意

    SQL クエリを最適化予定としてマークします。

  • データのエクスポート:

    • [エクスポートタスクの作成] をクリックして、現在 SQL の詳細 タブに表示されているすべてのデータをダウンロードできます。

      説明

      エクスポートされたデータは 3 日間ダウンロード可能です。

    • インスタンスやルールなどの異なるフィルター条件でダウンロードタスクを作成し、最適化を担当するオーナーに割り当てることができます。

    • 複数の SQL レコードを選択して、それらの項目のみをエクスポートすることも可能です。

  • データの共有:

    フィルター済みのスロー SQL クエリをチームメンバーと共有する方法は以下の 2 通りあります。

    • 複数の SQL レコードを選択して、一括共有 をクリックします。システムが短縮リンクを生成します。DAS コンソールへのアクセス権限を持つユーザーがそのリンクをクリックすると、選択した SQL レコードのみが表示されます。

    • あるいは、エクスポート の横にある 共有 をクリックして、現在のビュー(すべてのフィルターを含む)をキャプチャする URL を生成します。DAS コンソールへのアクセス権限を持つユーザーは、URL を開くことでフィルターを再設定することなく同じデータを確認できます。