スロークエリログは、データベースの安定性に大きな影響を与える可能性があります。データベースで高ペイロードやパフォーマンスの変動などの問題が発生した場合、データベース管理者と開発者はまず、実行中のスロークエリログを確認します。Database Autonomy Service (DAS) は、スローログ分析機能を提供します。DAS は、指定された実行時間のしきい値を超える SQL 文の統計を収集して分析します。また、データベースのパフォーマンス問題を迅速に特定して解決するための管理ソリューションも提供します。これにより、システムの安定性と信頼性が向上します。
ビデオ紹介
前提条件
データベースエンジンは次のいずれかです。
ApsaraDB RDS for MySQL、PolarDB for MySQL、MyBase for MySQL、または自己管理 MySQL
ApsaraDB RDS for SQL Server または MyBase for SQL Server
ApsaraDB RDS for PostgreSQL または PolarDB for PostgreSQL
Tair (Redis OSS-compatible)、または自己管理 Redis
PolarDB for PostgreSQL (Compatible with Oracle)
PolarDB-X 2.0
ApsaraDB for MongoDB または自己管理 MongoDB
重要スロークエリログの詳細はすべてのリージョンで利用可能です。リアルタイムのスロークエリログ統計は、中国本土、中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)、ドイツ (フランクフルト)、イギリス (ロンドン)、アメリカ (シリコンバレー)、アメリカ (バージニア) の各リージョンで利用できます。
新しいスロークエリログページは、自己管理データベースインスタンスをサポートしていません。
ターゲットデータベースインスタンスは DAS に接続されています。詳細については、「データベースインスタンスを DAS に接続する」をご参照ください。
背景情報
スロークエリログは、データベースカーネルによって生成されます。スロークエリログの構成パラメーターとしきい値は、データベースエンジンによって異なります。特定のパラメーターとしきい値については、お使いのデータベースエンジンの公式ドキュメントをご参照ください。
単一インスタンスのスロークエリログを表示する
このトピックでは、ApsaraDB RDS for MySQL データベースを例に、単一インスタンスのスロークエリログを表示する方法について説明します。
DAS コンソールにログインします。
左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > [インスタンスモニタリング] をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックして、インスタンス詳細ページに移動します。
左側のナビゲーションウィンドウで、リクエスト分析 > 低速クエリログ を選択します。
スロークエリログ分析 タブで、時間範囲を選択して、スロークエリログの傾向、[イベント分布]、スロークエリログの統計、スロークエリログの詳細 を表示できます。
説明時間範囲を選択する場合、終了時刻は開始時刻より後である必要があります。最大時間範囲は 7 日間です。過去 1 か月以内に生成されたスロークエリログ情報をクエリできます。
スロークエリログの傾向 チャートで、時点を選択して、対応する スロークエリログの統計 と スロークエリログの詳細 を表示できます。
説明低速 SQL 文が長すぎて完全に表示されない場合は、ポインターを文の上に置きます。完全な文がダイアログボックスに表示されます。
をクリックして、スローログ情報をローカルに保存します。
をクリックして OpenAPI Explorer に移動し、選択したパラメーターで API をデバッグします。[イベント分布] セクション:
指定した時間範囲内のスローログイベントをクエリできます。イベントをクリックして詳細を表示します。
スロークエリログの統計 セクション:
リストの上で、フィルター条件を選択してデータをフィルタリングできます。利用可能なフィルター条件は、データベースエンジンによって異なります。
[SQL ID] 列で特定の SQL テンプレートの ID をクリックして、その相関関係と、ユーザー分布、クライアント分布、メトリック傾向などの詳細リストを表示します。
ターゲット SQL テンプレートの 操作 列で、最適化 をクリックします。SQL 診断の最適化 ダイアログボックスで、SQL 診断結果を表示できます。
最適化の提案を適用するには、ページの右上隅にある コピー をクリックし、最適化された SQL 文をデータベースクライアントまたは DMS に貼り付けて実行します。それ以外の場合は、Cancel をクリックして診断を終了します。
説明DAS は、SQL 文の複雑さ、関連テーブルのデータ量、およびデータベースのペイロードに基づいて SQL 文を診断します。診断には 20 秒以上かかる場合があります。診断が完了すると、診断エンジンは診断結果、最適化の提案、および期待されるパフォーマンスの向上を提供します。結果に基づいて提案を受け入れるかどうかを決定できます。
ターゲット SQL テンプレートの 操作 列で、スロットリングを実行してください。 をクリックします。SQL スロットリング ページで、SQL 文のスロットリングパラメーターを構成します。詳細については、「SQL スロットリング」をご参照ください。
PolarDB for MySQL データベースインスタンスの場合、ターゲット SQL テンプレートの 操作 列にある [IMCI] をクリックして、インメモリ列インデックス (IMCI) のドキュメントを表示します。
説明[IMCI] ボタンは、PolarDB for MySQL インスタンスに IMCI ノードがなく、スロークエリログの [最大実行時間] が 20 秒を超え、スキャンされた最大行数 が 200,000 を超える場合に表示されます。
IMCI を使用して、大量のデータに対する複雑なクエリのクエリパフォーマンスを向上させることができます。
スロークエリログの詳細 セクションでは、操作 列の 最適化 と スロットリングを実行してください。 をクリックして、ターゲット SQL 文に対して SQL 診断の最適化 と SQL スロットリング を実行することもできます。
グローバルスロークエリログの表示
複数のデータベースインスタンスがある場合は、グローバル低速クエリログの傾向 ページに移動できます。このページには、選択したデータベースエンジンの全体的なスローログ傾向と、上位 10 インスタンスのスロークエリログ統計が表示されます。
グローバルスローログ傾向機能は、中国本土リージョンの ApsaraDB RDS for MySQL、MyBase for MySQL、および PolarDB for MySQL インスタンスでのみ利用できます。
DAS コンソールにログインします。
左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > 低速クエリログ に移動して、グローバル低速クエリログの傾向 と Top インスタンス統計 を表示します。
説明時間範囲を選択する場合、終了時刻は開始時刻より後である必要があります。過去 14 日以内に生成されたスロークエリログ情報をクエリできます。
よくある質問
Q: ApsaraDB RDS for MySQL および PolarDB for MySQL インスタンスの場合、スロークエリログの完了時刻が SQL 文の実際の実行時刻と異なるのはなぜですか?
A: この問題は通常、SQL 文によってタイムゾーンが変更された場合に発生します。スロークエリログに記録される実行時間のタイムゾーンは、セッション、データベース、またはシステムレベルにすることができます。スロークエリログで時間を設定するロジックは次のとおりです。データベースのタイムゾーンが設定されている場合は、そのタイムゾーンが使用されます。それ以外の場合は、システムのタイムゾーンが使用されます。SQL 文を使用してセッションレベルでタイムゾーンを変更すると、スロークエリログレコードのタイムゾーンが正しく変換されない場合があります。
Q: スロークエリログページの古いバージョンにはアクセスできますが、新しいバージョンにアクセスしようとすると、NoPermission や Forbidden.RAM などの権限エラーが発生するのはなぜですか?
A: 新しいスロークエリログページは、より強力なデータフィルタリングと選択機能を提供するために再設計されており、必要なアクセスポリシー (アクション) は古いページとは異なります。権限エラーが発生した場合は、「RAM ユーザーの権限付与」をご参照いただき、RAM ユーザーに次の権限を付与してください。
必要な権限: DescribeSlowLogHistogramAsync (スローログ傾向チャートデータ)、DescribeSlowLogStatistic (スローログテンプレート統計)、DescribeSlowLogRecords (スロークエリログ詳細)、GetInstanceEventWithGroupType (イベントセンターデータ)、および GetPerformanceMetrics (パフォーマンストレンドデータ)。
推奨される権限: CreateSqlTag (SQL 文にタグを付けるため) および DescribeDasQueryTagNames (SQL タグを取得するため)。
リファレンス
DAS の自動管理機能を有効にすると、データベースインスタンスで低速 SQL 文が検出されたときに自動的に最適化できます。