低速SQLクエリは、データベースの安定性を大幅に低下させます。 データベースで高いワークロードやパフォーマンスのジッターなどの問題が発生した場合、データベース管理者 (DBA) または開発者は、最初に低速クエリログが生成されているかどうかを確認します。 Database Autonomy Service (DAS) は、低速クエリのログ分析機能を提供します。 DASは、実行期間が指定されたしきい値を超えるSQL文の統計を収集および分析し、ソリューションを提供します。 データベースのパフォーマンスの問題を簡単にトラブルシューティングできます。 これにより、システムの信頼性と安定性が向上します。
前提条件
管理するデータベースインスタンスは、次のいずれかのタイプです。
ApsaraDB RDS for MySQL、PolarDB for MySQL、ApsaraDB MyBase for MySQL、および自己管理型MySQLデータベース
ApsaraDB RDS for SQL ServerおよびApsaraDB MyBase for SQL Server
ApsaraDB RDS for PostgreSQLおよびPolarDB for PostgreSQL
ApsaraDB for Redis と自己管理Redisデータベース
PolarDB for PostgreSQL (Oracleと互換)
PolarDB-Xの2.0
ApsaraDB for MongoDBおよび自己管理型MongoDBデータベース
重要Basic EditionのApsaraDB RDS for MySQLおよびApsaraDB RDS for PostgreSQLインスタンスは、低速クエリのログ分析機能をサポートしていません。
スロークエリログのグローバルな傾向は、中国本土にあるApsaraDB RDS for MySQLインスタンス、ApsaraDB MyBase for MySQLクラスター、およびPolarDB for MySQLクラスターに対してのみ表示できます。
データベースインスタンスがDASに接続されています。 詳細については、「データベースインスタンスのDASへの接続」をご参照ください。
背景情報
低速クエリログは、データベースカーネルによって生成されます。 関連するパラメータとしきい値は、データベースエンジンによって異なります。 詳細については、対応する公式ドキュメントをご参照ください。
単一のデータベースインスタンスの低速クエリログの表示
この例では、ApsaraDB RDS for MySQLインスタンスが使用されています。
DASコンソールにログインします。
左側のナビゲーションウィンドウで、インスタンスモニターをクリックします。
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
左側のナビゲーションウィンドウで、リクエスト分析 > 低速クエリログを選択します。
低速クエリログ分析タブで時間範囲を指定し、指定した時間範囲内のスロークエリログの傾向、統計、および詳細を確認します。
説明時間範囲を指定する場合、終了時刻は開始時刻より後である必要があり、開始時刻と終了時刻の間隔は24時間を超えることはできません。 前月のスロークエリログをクエリできます。
低速クエリログの傾向セクションで、トレンドチャートのある時点をクリックし、その時点でのスロークエリログの統計と詳細を表示できます。
低速クエリログのエクスポート をクリックすると、スロークエリログをコンピューターにダウンロードできます。
低速クエリログの統計 タブでは、次の操作を実行できます。
管理するSQLテンプレートを見つけて、操作 列の サンプル をクリックします。 低速クエリログサンプル ダイアログボックスで、SQLテンプレートのスロークエリログサンプルを表示します。
管理するSQLテンプレートを見つけて、操作 列の 最適化 をクリックします。 SQL 診断の最適化 ダイアログボックスで、SQL診断の結果を表示します。
SQL最適化の提案を受け入れる場合は、右上隅の コピー をクリックし、最適化されたSQL文をデータベースクライアントまたはData Management (DMS) に貼り付けて実行します。 SQL最適化の提案を受け入れない場合は、Cancel をクリックします。
説明DASは、SQL文の複雑さ、テーブル内のデータ量、およびデータベースのワークロードに基づいてSQL診断を実行します。 SQL診断が実行されてから20秒以上後に提案が返されることがあります。 診断が完了すると、SQL診断エンジンは診断結果、最適化の提案、および期待される最適化の利点を提供します。 診断結果に基づいて、提案を受け入れるかどうかを決定できます。
[Database Expert Service] をクリックして、エキスパートサービスを購入することもできます。 Database Expert Serviceは、緊急支援、健康診断、パフォーマンスの最適化、セキュリティ保証、データ移行など、付加価値のあるプロフェッショナルなデータベースサービスを提供します。
管理するSQLテンプレートを見つけて、操作 列の スロットリングを実行してください。 をクリックします。 SQL スロットリング ダイアログボックスで、パラメーターを設定します。 詳細については、「SQLスロットリング」をご参照ください。
PolarDB For MySQLクラスターの場合、管理するSQLテンプレートを見つけ、操作 列の [IMCI] をクリックして、インメモリ列インデックス (IMCI) 機能のドキュメントを表示します。
説明PolarDB for MySQLクラスターのIMCIノードが購入されていない場合、SQLテンプレートの最大実行時間が20秒を超え、SQLテンプレートの最大スキャン行数が200,000を超える場合、[IMCI] ボタンが [アクション] 列に表示されます。
大量のデータに対して複雑なクエリが必要な場合は、IMCI機能を使用してクエリのパフォーマンスを向上させることをお勧めします。
低速クエリログの詳細 タブで、管理するSQL文を見つけて、操作 列の 最適化 または スロットリングを実行してください。 をクリックします。 これにより、SQL診断またはSQLスロットリングも実行できます。
スロークエリログのグローバルな傾向を表示する
複数のデータベースインスタンスがある場合、[スローログ] ページの [グローバル低速クエリログの傾向] セクションと [トップインスタンス統計] セクションで、データベースインスタンスのスロークエリログのグローバルトレンドと、上位10のデータベースインスタンスのスロークエリログの統計を表示できます。
スロークエリログのグローバルな傾向は、中国本土にあるApsaraDB RDS for MySQLインスタンス、ApsaraDB MyBase for MySQLクラスター、およびPolarDB for MySQLクラスターに対してのみ表示できます。
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、リクエスト分析 > 低速クエリログ を選択します。 表示されるページで、グローバル低速クエリログの傾向 および Top インスタンス統計 セクションの統計情報を表示します。
説明時間範囲を選択する場合、終了時刻は開始時刻より後でなければなりません。 過去14日以内の低速クエリログをクエリできます。
よくある質問
Q: スロークエリログに記録されたSQL文の実行完了時間が、ApsaraDB RDS for MySQLインスタンスまたはPolarDB for MySQLクラスターのSQL文の実際の実行完了時間と異なるのはなぜですか。
A: この問題は通常、低速クエリログに記録されたタイムゾーンが実行されたSQL文によって変更されたときに発生します。 SQL文の実行完了時間は, スロークエリログに記録されているタイムゾーンによって異なります。セッションレベル, データベースレベル, システムレベルです。 データベースにタイムゾーンが指定されている場合、SQL文の実行完了時刻はデータベースのタイムゾーンに基づいて記録されます。 それ以外の场合は, システムのタイムゾーンに基づいてSQL文の実行完了时间が记录されます。 SQL文がセッションレベルでタイムゾーンを変更すると、スロークエリログに記録されたタイムゾーンが適切に変換されない可能性があります。
関連ドキュメント
DASの自律機能を有効にできます。 これにより、データベースインスタンスで低速SQLクエリが検出されると、DASは低速SQLクエリを自動的に最適化します。