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

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

最終更新日:Jul 18, 2026

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

前提条件

  • ご利用のデータベースインスタンスが以下のいずれかであること:

    • ApsaraDB RDS for MySQL

    • PolarDB for MySQL

    • MyBase MySQL

    • ApsaraDB RDS for PostgreSQL

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

    説明

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

  • O&M サービスが有効になっていること。

ビデオチュートリアル

制限事項

  • クエリガバナンスは 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. 左側のナビゲーションウィンドウで、インテリジェント O&M センター > クエリのガバナンス を選択します。

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

    期間、リージョン、エンジンでフィルターをかけるか、インスタンス ID を入力して特定のインスタンスの結果を表示できます。

    • クエリガバナンス概要:システムが SQL テンプレートにタグ付けおよび分類を行った後の結果を表示します。

      説明

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

    • クエリガバナンストレンド:選択した期間におけるクエリガバナンス結果の推移を表示します。

    • 上位ランキング最もパフォーマンスの高いインスタンス および 最もパフォーマンスの低いインスタンス のリストを表示します。

      • 最もパフォーマンスの低いインスタンス:スロークエリの実行回数を降順に並べて、問題が最も深刻なインスタンスを特定します。

      • パフォーマンス上位インスタンス:スロークエリの実行回数の変化量を昇順に並べます。負の値はスロークエリの実行回数が減少(良好な最適化)していることを示し、正の値は増加していることを示します。

      DAS では、最適化可能な SQL のランキングに注目することを推奨します。

    • 最適化対象の SQL:フィルターを設定して、ガバナンスが必要な SQL ステートメントを特定します。

      説明

      これらのフィルターは AND 条件で組み合わされます。

      • 複数のデータベース名はカンマ (,) で区切り、OR 条件で組み合わせます。

      • 複数の SQL キーワードはスペースで区切り、AND 条件で組み合わせます。

      • 複数のデータベースユーザー名はカンマ (,) で区切り、OR 条件で組み合わせます。

      • 複数のルールタグを選択すると、OR 条件で組み合わされます。

      • 対象の SQL サンプルの 操作 列で、提案 をクリックして、詳細なガバナンス提案を表示します。

      • 対象の SQL サンプルの 操作 列で、タグの追加 をクリックして、SQL ステートメントに手動でタグを付けます。タグの詳細については、「手動タグ付け」をご参照ください。

        複数の SQL ステートメントを一度に選択してタグ付けすることもできます。

      • 対象の SQL サンプルの 操作 列で、サンプル をクリックして、その SQL ステートメントのスロークエリログサンプルの詳細を表示します。

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

      必要に応じて、最適化対象 SQL ステートメントのデータをエクスポートおよび共有できます。詳細については、「ベストプラクティス」をご参照ください。

    • 失敗した SQL:フィルターを設定して、表示したい SQL ステートメントを特定します。

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

      • データベース名および SQL キーワードでフィルターをかけられます。この 2 つのフィルターは AND 条件で組み合わされます。

        • 複数のデータベース名はカンマ (,) で区切り、OR 条件で組み合わせます。

        • 複数の SQL キーワードはスペースで区切り、AND 条件で組み合わせます。

      対象の SQL サンプルの 操作 列で、サンプル をクリックして、その SQL ステートメントのサンプル詳細を表示します。

ベストプラクティス

  • SQL クエリの最適化要否を判断するためにタグを使用します。

    ガバナンス機能は、全体のスロー SQL リストからステートメントを次の 2 つのカテゴリに分類します:最適化不要 および 最適化可能な SQL。以下の 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

    注意

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

    最適化可能な 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 を開くことでフィルターを再設定することなく同じデータを確認できます。

API リファレンス

API

説明

CreateQueryOptimizeTag

対象の SQL クエリにタグを追加します。

GetQueryOptimizeExecErrorStats

失敗した SQL 実行のテンプレートデータを取得します。

GetQueryOptimizeExecErrorSample

失敗した SQL 実行のサンプルデータを取得します。

GetQueryOptimizeSolution

クエリに対するガバナンス提案を取得します。

GetQueryOptimizeRuleList

クエリガバナンスのルール一覧を取得します。

GetQueryOptimizeDataTrend

クエリガバナンスのトレンドデータを取得します。

GetQueryOptimizeDataTop

パフォーマンス上位インスタンスおよび最もパフォーマンスの低いインスタンスのリストデータを取得します。

GetQueryOptimizeDataStats

クエリガバナンスのテンプレートデータを取得します。

GetQueryOptimizeTag

指定された SQL クエリのタグを取得します。

GetQueryOptimizeShareUrl

クエリガバナンス結果の共有 URL を取得します。