データベースインスタンスで低速のSQLクエリが発生した場合、または実行されたSQL文がアプリケーションのパフォーマンスに影響する場合は、SQL文を最適化できます。 Database Autonomy Service (DAS) は、自動SQL最適化機能を提供します。 この機能は、低速SQLクエリを自動的に診断し、インデックス最適化の提案を生成し、テーブルロックなしでインデックスを作成できます。
前提条件
管理するデータベースインスタンスは、次の表に示すタイプのいずれかです。
データベースタイプ
リージョン
ApsaraDB RDS for MySQL High-availability Edition、Enterprise Edition、またはCluster Edition
PolarDB for MySQLクラスタエディション
説明1つのノードを持つPolarDB for MySQL Cluster Editionはサポートされていません。
ApsaraDB MyBase for MySQL高可用性エディション
中国 (杭州) 、中国 (上海) 、中国 (深セン) 、中国 (河源) 、中国 (広州) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウラン州) 、中国 (南京-地方地域) 、中国 (福州-地方地域) 、中国 (成都) 、中国 (鄭州-地方地域) 、中国 (香港) 、日本 (東京) 、韓国 (ソウル) 、シンガポール (クアラルンプール) 、インドネシア (ジャカルタ) 、フィリピン (マニラ) 、タイ (バンコク) 、アラブ首長国連邦 (ドバイ) 、SAU (リヤド-パートナー地域) 、ドイツ (フランクフルト) 、米国 (シリコンバレー) 、米国 (バージニア) 、英国 (ロンドン)
ApsaraDB RDS for PostgreSQL
中国 (杭州) 、中国 (上海) 、中国 (深セン) 、中国 (河源) 、中国 (広州) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランカブ) 、中国 (成都) 、中国 (香港) 、日本 (東京) 、シンガポール、マレーシア (クアラルンプール) 、インドネシア (ジャカルタ) 、フィリピン (マニラ) 、UAE (ドバイ) 、ドイツ (フランクフルト) 、米国 (シリコンバレー) 、米国 (バージニア) 、英国 (ロンドン)
データベースインスタンスの [SQL Explorer] が有効になっている必要があります。 詳細は、「SQL Explorer」をご参照ください。
説明自動SQL最適化は、アプリケーションのパフォーマンスに影響を与える各SQLステートメントを最適化します。 SQL Explorerを有効にすると、システムは最適化されたSQL文と関連するSQL文のパフォーマンスを追跡します。 パフォーマンスが低下した場合、最適化されたSQL文は自動的にロールバックされ、作成されたインデックスが他のSQL文のパフォーマンスに影響を与えないようにします。 SQL Explorerが無効の場合、システムは最適化されたSQL文のパフォーマンスのみを追跡します。 したがって、より包括的なパフォーマンス最適化効果を得るには、SQL Explorerを有効にすることをお勧めします。
メリット
自動インデックス作成は、自動SQL最適化機能に依存し、ネイティブMySQLカーネルでサポートされているオンラインDDLステートメントを使用して実装されます。 これにより、従来の索引付けによって引き起こされるテーブルロックの問題が防止される。 詳細については、「SQL最適化テクノロジ」をご参照ください。
制限事項
自動SQL最適化機能は、X-Engineを使用するテーブルに対するSQLクエリではサポートされていません。
手順
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、インスタンスモニター.
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
インスタンスの詳細ページで、自律型センター左側のナビゲーションウィンドウに表示されます。
On the自律型センタータブをクリックします。Autonomy Service Settings右上隅にあります。
[自律機能の管理] パネルの タブで、自律サービスを有効にします。 [最適化とスロットリング] タブで、[自動インデックスの作成と削除] を選択します。 次に、次のいずれかのオプションを選択できます。
SQL診断のみ: DASはSQL文の診断を毎日実行し、インデックス最適化の提案を提供します。 ただし、DASはデータベースインスタンスにインデックスを作成しません。
SQL診断と自動インデックス作成: DASは、SQL文に対して毎日診断を実行し、インデックス最適化の提案を提供し、その提案に基づいてデータベースインスタンスにインデックスを作成します。
説明DASは、データベースインスタンスのメンテナンス期間内にインデックスを作成します。
[OK] をクリックします。
[アラート設定] セクションで、アラートテンプレートを設定し、アラート通知をサブスクライブします。 これにより、自動SQL最適化イベントのステータスをできるだけ早く把握することができます。
システムはアラートテンプレートを推奨し、アラートテンプレートに必要な自律性イベントのアラートルールを追加します。 プロンプトに従ってアラートテンプレートを設定できます。
説明データベースインスタンスにアラートテンプレートを設定している場合は、プロンプトに従って、必要な自律性イベントのアラートルールをアラートテンプレートに追加する必要があります。
データベースインスタンスのアラートテンプレートとアラートルールを設定する必要がある場合は、「アラートテンプレートの設定」と「アラートルールの設定」の手順に従います。
[アラート連絡先グループの選択] ステップで、アラート連絡先グループを選択します。 以下の操作を実行できます。
[連絡先の追加] をクリックしてアラート連絡先を追加します。
[連絡先グループの作成] をクリックして、アラート連絡先グループを作成します。
管理するアラート連絡先を見つけ、[操作] 列の [編集] または [削除] をクリックして、アラート連絡先に関する情報を変更したり、アラート連絡先を削除したりします。
詳細は、「アラート連絡先の管理」をご参照ください。
[設定の送信] をクリックします。 表示されるメッセージで、設定を確認し、[OK] をクリックします。
次のステップ
Autonomy Centerページでは、特定の期間内に発生した最適化イベントを表示できます。
[低速SQLステートメント診断 (診断と最適化)] セクションの右側で、[詳細] をクリックします。 次に、[根本原因の分析と提案] タブで、[問題のあるSQLステートメント] 、[SQLステートメントの最適化] 、[インデックスの推奨] 、および [ステートメントの最適化] セクションの情報を表示します。
関連ドキュメント
SQLステートメントを手動で最適化する方法の詳細については、「SQLの最適化」をご参照ください。
関連する API 操作
API 操作 | 説明 |
一度に複数のデータベースインスタンスの自動SQL最適化機能を有効、変更、または無効にします。 | |
DASのSQL診断機能によって生成されるSQL最適化の提案を照会します。 | |
最適化イベントの総数や最大の改善など、一定期間内の自動SQL最適化イベントの統計を照会します。 |