Database Autonomy Service (DAS) は、診断結果、最適化の提案、および推定されるパフォーマンス向上を自動的に生成する SQL 最適化機能を提供します。これらの結果を確認して、提案を採用するかどうかを決定できます。このトピックでは、SQL 最適化機能の使用方法について説明します。
始める前に
-
データベースエンジンは次のいずれかである必要があります。
-
RDS for MySQL
説明RDS for MySQL の Basic Edition および Cluster Edition はサポートされていません。
-
MyBase MySQL
-
PolarDB for MySQL
説明PolarDB for MySQL のシングルノードクラスター (旧スタンドアロンインスタンス) はサポートされていません。
-
PolarDB-X 2.0
説明メジャーバージョンが
5.4.13で、マイナーバージョンが[16415631,16504348]の範囲にある PolarDB-X 2.0 インスタンスはサポートされていません。PolarDB-X 2.0 インスタンスのバージョンを表示するには、「インスタンスのバージョンの表示とアップグレード」をご参照ください。 -
MongoDB
-
-
ターゲットインスタンスが DAS に接続されていること。詳細については、「インスタンスを DAS に接続する」をご参照ください。
-
ターゲットインスタンスのアクセスステータスが 正常なアクセス であること。
制限事項
-
X-Engine を使用するテーブルに対しては、SQL ステートメントの診断や最適化はできません。
-
PolarDB-X では、プリペアドステートメントを使用して SQL ステートメントを実行すると、スロークエリログにはステートメントテンプレート (例:
select * from test where a = ? and b = ?) とバインドされたパラメーター (例:params: [1, 2]) が別々に記録されます。この形式は有効な SQL ステートメントとして直接実行できないため、元のステートメントに依存して分析や最適化を行う機能が制限される場合があります。
スローログからのビジュアル SQL 分析の作成
この機能は、複雑な SQL 実行フローを直感的で視覚的な形式で表示します。そのグラフィカルインターフェイスは、クエリの実行パス、ノードの効率、潜在的なボトルネックを明確に示し、SQL の最適化、コードレビュー、ヘルスチェック中に問題を迅速に特定し、修正するのに役立ちます。
スローログ分析ページでの SQL 最適化は、RDS for MySQL 5.6、5.7、8.0 および PolarDB for MySQL 5.6、5.7、8.0 インスタンスでのみサポートされています。
DAS コンソールにログインします。
左側のナビゲーションウィンドウで、 をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページを開きます。
-
左側のナビゲーションウィンドウで、リクエスト分析 > 低速クエリログ をクリックします。
-
スロークエリログ分析 ページで、次の操作を行います。
-
スロークエリログの統計 タブで、ターゲットの SQL テンプレートを見つけ、操作 列の 最適化 をクリックします。
-
スロークエリログの詳細 タブで、ターゲットの SQL ステートメントを見つけ、操作 列の 最適化 をクリックします。
-
-
表示されたダイアログボックスで、スケジュールの作成 をクリックします。
-
実行ノードの種類を選択します。
-
スタンバイノード (デフォルト):現在のインスタンスのスタンバイノードです。このノードは主に、定型的なクエリ分析に使用されます。
-
イベントノード:SQL ステートメントが実際に実行されたビジネスノードです。このノードは、トラブルシューティングや最適化に適しています。
-
-
作成の確認 をクリックして、可視化された実行計画 を作成します。
ビジュアル実行計画
インスタンスセッションページからの SQL 最適化
セルフマネージド MySQL、MongoDB、および RDS for PostgreSQL インスタンスは、インスタンスセッション ページでの SQL 最適化をサポートしていません。
DAS コンソールにログインします。
左側のナビゲーションウィンドウで、 をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページを開きます。
-
左側のナビゲーションウィンドウで、インスタンスセッション をクリックします。
-
インスタンスのセッション エリアで、最適化したいセッションを選択し、最適化 をクリックします。
-
表示された SQL 診断の最適化 ダイアログボックスで、SQL 診断結果を表示します。
提案を受け入れる場合は、右上隅の コピー をクリックし、最適化された SQL をデータベースクライアントまたは DMS に貼り付けて実行します。提案を受け入れない場合は、Cancel をクリックしてダイアログボックスを閉じます。
説明DAS は、SQL ステートメントの複雑さ、テーブルのデータ量、およびデータベースの負荷に基づいて SQL ステートメントを診断します。診断には 20 秒以上かかる場合があります。その後、エンジンは診断結果、最適化の提案、および推定されるパフォーマンス向上を提供し、確認と採用を促します。
診断が完了すると、ページには元の SQL、実行計画 (select_type、type、rows などの列を含む)、診断結果 (行ストアインデックスの提案の DDL ステートメントとインデックスの詳細を含む)、最適化のメリット (例:「期待されるパフォーマンス向上:0.55 倍」および「最適化による効果が低い」)、およびステートメントの最適化の提案が表示されます。
SQL 診断履歴の表示
DAS コンソールにログインします。
左側のナビゲーションウィンドウで、 をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページを開きます。
-
左側のナビゲーションウィンドウで、診断履歴のリクエスト をクリックします。ここでは、SQL の内容、診断ステータス、時間、結果などの詳細を含む、インスタンスの SQL 診断履歴を表示できます。