低速SQLクエリは、ApsaraDB RDS for MySQLインスタンスの安定性に大きく影響します。 RDSインスタンスで高負荷やパフォーマンスのジッターなどの問題が発生した場合、管理者または開発者はまず、低速SQLクエリが実行されているかどうかを確認します。 Database Autonomy Service (DAS) では、低速のクエリログ分析機能を使用できます。 この機能は、RDSインスタンスで実行される低速SQLクエリの統計を収集して分析し、パフォーマンスの問題を特定し、問題の解決策を提供します。 これにより、システムの安定性と信頼性が向上します。
前提条件
RDSインスタンスはMySQLを実行します。
RDSインスタンスはRDS Basic Editionを実行していません。
使用上の注意
SQL文のサイズが8,192バイトを超える場合, SQL文を記録できません。
手順
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > 低速 SQL を選択します。
低速クエリログ分析 タブで、時間範囲を指定し、指定した時間範囲内のスロークエリログの低速クエリログの傾向、低速クエリログの統計、および低速クエリログの詳細を表示します。
説明時間範囲を指定する場合、終了時刻は開始時刻より後である必要があり、開始時刻と終了時刻の間隔は24時間を超えることはできません。 1か月以内に低速クエリログをクエリできます。
トレンドチャートのある時点をクリックして、その時点での低速SQLクエリに関する統計と詳細を表示できます。
低速クエリログのエクスポート をクリックして、スロークエリログをダウンロードします。
重要最大1,000個のスロークエリログをエクスポートできます。 すべてのスロークエリログを取得する場合は、DescribeSlowLogRecords操作を呼び出します。
低速クエリログの統計 タブで、次の手順を実行します。
管理するSQLテンプレートの 操作 列で サンプル をクリックし、スロークエリログの詳細を表示します。
管理するSQLテンプレートを見つけて、操作 列の 最適化 をクリックします。 SQL 診断の最適化 ダイアログボックスで、SQL診断の結果を表示します。
SQL最適化の提案を受け入れる場合は、右上隅の コピー をクリックし、最適化されたSQL文をデータベースクライアントまたはデータ管理 (DMS) に貼り付けて実行します。 SQL最適化の提案を受け入れない場合は、Cancel をクリックします。
説明DASは、SQL文の複雑さのレベル、テーブル内のデータ量、およびデータベースの負荷に基づいてSQL診断を実行します。 SQL診断が実行されてから20秒以上後に提案が返されることがあります。 診断が完了すると、SQL診断エンジンは診断結果、最適化の提案、および期待される最適化の利点を提供します。 診断結果に基づいて、提案を受け入れるかどうかを決定できます。
[Database Expert Service] をクリックして、エキスパートサービスを購入することもできます。 Database Expert Serviceは、緊急支援、健康診断、パフォーマンスチューニング、セキュリティ保証、データ移行など、付加価値のあるプロフェッショナルなデータベースサービスを提供します。
管理するSQLテンプレートを見つけて、操作 列の スロットリングを実行してください。 をクリックします。 SQL スロットリング ダイアログボックスで、パラメーターを設定します。 詳細については、「SQLスロットリング」をご参照ください。
低速クエリログの詳細 タブで、管理するSQL文を見つけ、操作 列の 最適化 または スロットリングを実行してください。 をクリックして、SQL診断最適化またはSQLスロットリングを実行します。
よくある質問
Q: スロークエリログに記録されたSQL文の実行完了時間が、実際のSQL文の実行完了時間と異なるのはなぜですか。
A: この問題は通常、低速クエリログに記録されたタイムゾーンが実行されたSQL文によって変更されたときに発生します。 SQL文の実行完了時間は, スロークエリログに記録されているタイムゾーンによって異なります。セッションレベル, データベースレベル, システムレベルです。 データベースにタイムゾーンが指定されている場合、SQL文の実行完了時刻はデータベースのタイムゾーンに基づいて記録されます。 それ以外の场合は, システムのタイムゾーンに基づいてSQL文の実行完了时间が记录されます。 SQL文がセッションレベルでタイムゾーンを変更すると、スロークエリログに記録されたタイムゾーンが適切に変換されない可能性があります。
参考情報
RDSインスタンスで低速のSQLクエリが検出された場合、DASの自律機能を有効にして自動最適化を実装できます。