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