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

Database Autonomy Service:自動 SQL 最適化

最終更新日:May 29, 2025

データベースインスタンスでスロー SQL クエリが発生した場合、または実行される SQL 文がアプリケーションのパフォーマンスに影響を与える場合は、SQL 文を最適化できます。Database Autonomy Service (DAS) は、自動 SQL 最適化機能を提供します。この機能は、スロー SQL クエリを自動的に診断し、インデックスの最適化候補を生成し、テーブルロックなしでインデックスを作成できます。

メリット

自動インデックス作成は、自動 SQL 最適化機能に基づいており、ネイティブ MySQL カーネルでサポートされているオンライン DDL 文を使用して実装されます。これにより、従来のインデックス作成で発生する可能性のあるテーブルロックの問題を防ぎます。詳細については、「SQL 最適化テクノロジー」をご参照ください。

前提条件

データベースの種類

リージョン

  • ApsaraDB RDS for MySQL High-availability Edition、Enterprise Edition、または Cluster Edition

  • PolarDB for MySQL Cluster Edition

    説明

    PolarDB for MySQL Cluster Edition (1 ノード) はサポートされていません。

  • ApsaraDB MyBase for MySQL High-availability Edition

中国 (杭州), 中国 (上海), 中国 (深圳), 中国 (河源), 中国 (広州), 中国 (青島), 中国 (北京), 中国 (張家口), 中国 (フフホト), 中国 (ウランチャブ), 中国 (南京 - ローカルリージョン), 中国 (福州 - ローカルリージョン), 中国 (成都), 中国 (鄭州 - ローカルリージョン), 中国 (香港), 日本 (東京), 韓国 (ソウル), シンガポール, マレーシア (クアラルンプール), インドネシア (ジャカルタ), フィリピン (マニラ), タイ (バンコク), UAE (ドバイ), SAU (リヤド - パートナーリージョン), ドイツ (フランクフルト), 米国 (シリコンバレー), 米国 (バージニア), 英国 (ロンドン)

制限事項

自動 SQL 最適化機能は、X-Engine を使用するテーブルに対する SQL クエリではサポートされていません。

手順

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

  2. 左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > インスタンスモニター を選択します。

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

  4. インスタンスの詳細ページで、左側のナビゲーションウィンドウの 自律型センター をクリックします。

  5. 自律型センター タブで、右上隅にある Autonomy Service Settings をクリックします。

  6. [自律型関数設定][自律機能管理] パネルの [最適化と調整][自動インデックス作成と削除] タブで、自律サービスを有効にします。 タブで、 を選択します。次に、次のオプションのいずれかを選択できます。

    • [SQL 診断のみ]: DAS はインデックスの最適化候補を提供するだけで、インデックスは変更しません。

    • [SQL 診断とインデックスの自動作成]: DAS は、インデックスの最適化候補に基づいてインデックスを自動的に作成します。

      説明

      DAS は、データベースインスタンスのメンテナンスウィンドウ内にインデックスを作成します。

  7. [OK] をクリックします。

  8. [アラート設定] セクションで、アラートテンプレートを設定し、アラート通知をサブスクライブします。これは、自動 SQL 最適化イベントのステータスをできるだけ早く把握するのに役立ちます。

    システムはアラートテンプレートを推奨し、アラートテンプレートに必要な自律イベントのアラートルールを追加します。プロンプトに従ってアラートテンプレートを設定できます。

    説明
    • データベースインスタンスのアラートテンプレートを設定済みの場合は、プロンプトに従って、必要な自律イベントのアラートルールをアラートテンプレートに追加する必要があります。

    • データベースインスタンスのアラートテンプレートとアラートルールを設定する必要がある場合は、「アラートテンプレートを設定する」および「アラートルールを設定する」の手順に従ってください。

  9. [アラート連絡グループの選択] ステップで、アラート連絡グループを選択します。次の操作を実行できます。

    • [連絡先の追加] をクリックして、アラート連絡先を追加します。

    • [連絡グループの作成] をクリックして、アラート連絡グループを作成します。

    • 管理するアラート連絡先を見つけ、[アクション] 列の [編集] または [削除] をクリックして、アラート連絡先の情報を変更するか、アラート連絡先を削除します。

    詳細については、「アラート連絡先を管理する」をご参照ください。

  10. [設定の送信] をクリックします。表示されるメッセージで設定を確認し、[OK] をクリックします。

次のステップ

  1. Autonomy Center ページで、特定の期間内に発生した最適化イベントを表示できます。dd

  2. [スロー SQL 文診断 (診断と最適化)] セクションの右側にある [詳細] をクリックします。次に、[根本原因分析と提案] タブで、[問題のある SQL 文][SQL 文の最適化][インデックスの推奨]、および [文の最適化] セクションの情報を確認します。ss

関連情報

SQL 文を手動で最適化する方法の詳細については、「SQL 最適化」をご参照ください。

FAQ

DAS がテーブルのインデックスを自動的に作成するときに、テーブルは長時間ロックされますか?

いいえ。DAS は、ネイティブのオンライン DDL 操作を実行することでインデックスを作成します。これにより、テーブルが長時間ロックされるのを防ぐことができます。

DAS は、コンソールで検出されたスロー SQL クエリを最適化しないのはなぜですか?コンソールで検出された低速の SQL クエリを DAS は最適化しますか?

DAS は、コンソールで検出されたすべてのスロー SQL クエリを最適化するわけではありません。最適化は、DAS が現在の SQL クエリに対して最適化候補が利用可能であり、これらの最適化によってクエリのパフォーマンスが大幅に向上することを確認した場合にのみ実行されます。現在の SQL クエリにインデックスが既に存在する場合、または最適化によるパフォーマンスの向上がわずかである場合、DAS は最適化をスキップします。

関連 API 操作

操作

説明

UpdateAutoSqlOptimizeStatus

複数のデータベースインスタンスに対して、自動 SQL 最適化機能を一度に有効化、変更、または無効化します。

GetSqlOptimizeAdvice

DAS の SQL 診断機能によって生成された SQL 最適化候補をクエリします。

GetInstanceSqlOptimizeStatistic

一定期間内の自動 SQL 最適化イベントの統計 (最適化イベントの総数、最大改善率など) をクエリします。