すべてのプロダクト
Search
ドキュメントセンター

Database Autonomy Service:スロークエリログ分析

最終更新日:Mar 22, 2025

スロー SQL クエリは、データベースの安定性を大幅に低下させます。 ワークロードの増加やパフォーマンスのジッターなどの問題がデータベースで発生した場合、データベース管理者(DBA)または開発者は、まずスロークエリログが生成されているかどうかを確認します。Database Autonomy Service(DAS)は、スロークエリログ分析機能を提供します。 DAS は、実行時間が指定されたしきい値を超える SQL 文の統計を収集して分析し、解決策を提供します。 データベースのパフォーマンスの問題を簡単にトラブルシューティングできます。 これにより、システムの信頼性と安定性が向上します。

前提条件

  • 管理するデータベースインスタンスは、次のいずれかのタイプです。

    • ApsaraDB RDS for MySQLPolarDB for MySQLApsaraDB MyBase for MySQL、および自己管理 MySQL データベース

    • ApsaraDB RDS for SQL Server および ApsaraDB MyBase for SQL Server

    • ApsaraDB RDS for PostgreSQL および PolarDB for PostgreSQL

    • Tair (Redis OSS-compatible) および自主管理 Redis データベース

    • PolarDB for PostgreSQL (Oracle 互換)

    • PolarDB-X 2.0

    • ApsaraDB for MongoDB および自主管理 MongoDB データベース

    重要
    • ApsaraDB RDS for MySQL および ApsaraDB RDS for PostgreSQL の Basic Edition インスタンスは、スロークエリログ分析機能をサポートしていません。

    • 中国本土にある ApsaraDB RDS for MySQL インスタンス、ApsaraDB MyBase for MySQL クラスタ、および PolarDB for MySQL クラスタについてのみ、スロークエリログのグローバルトレンドを表示できます。

  • データベースインスタンスは Database Autonomy Service(DAS)に接続されています。 詳細については、「DAS にデータベースインスタンスを接続する」をご参照ください。

背景情報

スロークエリログは、データベースカーネルによって生成されます。 関連するパラメータとしきい値は、データベースエンジンによって異なります。 詳細については、対応する公式ドキュメントをご参照ください。

単一データベースインスタンスのスロークエリログを表示する

この例では、ApsaraDB RDS for MySQL インスタンスを使用します。

  1. DAS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > インスタンスモニター を選択します。

  3. 表示されたページで、管理するデータベースインスタンスを見つけ、インスタンス ID をクリックします。 インスタンスの詳細ページが表示されます。

  4. 左側のナビゲーション ウィンドウで、リクエスト分析 > 低速クエリログ を選択します。

  5. スロークエリログ分析 タブで、時間範囲を指定し、指定した時間範囲内のスロークエリログの スロークエリログの傾向スロークエリログの統計、および スロークエリログの詳細 を表示します。

    説明

    時間範囲を指定する場合、終了時刻は開始時刻よりも後にする必要があり、開始時刻と終了時刻の間隔は 24 時間を超えることはできません。 過去 1 か月以内のスロークエリログをクエリできます。

    • スロークエリログの傾向 セクションでは、トレンドチャートの時刻をクリックして、その時刻のスロークエリログの統計と詳細を表示できます。スロークエリログの統計 スロークエリログの詳細

    • 低速クエリログのエクスポート をクリックして、スロークエリログをコンピュータにダウンロードできます。

    • スロークエリログの統計 タブで、次の操作を実行します。

      • 管理する SQL テンプレートを見つけ、操作 列の サンプル をクリックします。 低速クエリログサンプル ダイアログボックスで、SQL テンプレートのスロークエリログサンプルを表示します。

      • SQL テンプレートに対応する 操作 列の 最適化 をクリックします。 SQL 診断の最適化 ダイアログボックスで、SQL 診断結果を表示します。

        SQL 最適化の提案を受け入れる場合は、右上隅にある コピー をクリックし、最適化された SQL 文をデータベースクライアントまたは Data Management(DMS)に貼り付けて実行します。 SQL 最適化の提案を受け入れない場合は、Cancel をクリックします。

        説明

        DAS は、SQL 文の複雑さ、テーブル内のデータ量、およびデータベースの負荷に基づいて SQL 診断を実行します。 SQL 診断の実行後、20 秒以上経過してから提案が返される場合があります。 診断が完了すると、SQL 診断エンジンは、診断結果、最適化の提案、および予想される最適化のメリットを提供します。 診断結果に基づいて、提案を受け入れるかどうかを決定できます。

        また、[データベースエキスパートサービス] をクリックして、エキスパートサービスを購入することもできます。 データベースエキスパートサービスは、緊急支援、ヘルス診断、パフォーマンチューニング、セキュリティ保証、データ移行などの付加価値のある専門的なデータベースサービスを提供します。

      • 管理する SQL テンプレートを見つけ、操作 列の スロットリングを実行してください。 をクリックします。 SQL スロットリング ダイアログボックスで、パラメータを設定します。 詳細については、「SQL スロットリング」をご参照ください。

      • PolarDB for MySQL クラスタの場合、管理する SQL テンプレートを見つけ、操作 列の [IMCI] をクリックして、インメモリ列インデックス(IMCI)機能のドキュメントを表示します。

        説明
        • PolarDB for MySQL クラスタ用に IMCI ノードが購入されていない場合、SQL テンプレートの最大実行時間が 20 秒を超え、SQL テンプレートの最大スキャン行数が 200,000 を超える場合、[IMCI] ボタンが [アクション] 列に表示されます。スキャンされた最大行数

        • 大量のデータに対して複雑なクエリが必要な場合は、IMCI 機能を使用してクエリのパフォーマンスを向上させることをお勧めします。

    • スロークエリログの詳細 タブで、管理する SQL 文を見つけ、操作 列で 最適化 または スロットリングを実行してください。 をクリックして、SQL 診断の最適化または SQL スロットリングを実行します。SQL 診断の最適化 SQL スロットリング

スロークエリログのグローバルトレンドを表示する

複数のデータベースインスタンスがある場合は、[スローログ] ページの グローバル低速クエリログの傾向 セクションと [トップインスタンス統計] セクションで、データベースインスタンスのスロークエリログのグローバルトレンドと上位 10 個のデータベースインスタンスのスロークエリログの統計を表示できます。

重要

中国本土にある ApsaraDB RDS for MySQL インスタンス、ApsaraDB MyBase for MySQL クラスタ、および PolarDB for MySQL クラスタについてのみ、スロークエリログのグローバルトレンドを表示できます。

  1. DAS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > 低速クエリログ を選択します。表示されたページで、グローバル低速クエリログの傾向 セクションと Top インスタンス統計 セクションの統計情報を表示します。

    説明

    時間範囲を選択する場合、終了時刻は開始時刻よりも後にする必要があります。 過去 14 日以内のスロークエリログをクエリできます。

よくある質問

ApsaraDB RDS for MySQL インスタンスまたは PolarDB for MySQL クラスタの場合、スロークエリログに記録されている SQL 文の実行完了時刻が、SQL 文の実際の実行完了時刻と異なるのはなぜですか?

この問題は通常、実行された SQL 文によってスロークエリログに記録されたタイムゾーンが変更された場合に発生します。 SQL 文の実行完了時刻は、セッションレベル、データベースレベル、およびシステムレベルでスロークエリログに記録されたタイムゾーンによって異なります。 データベースにタイムゾーンが指定されている場合、SQL 文の実行完了時刻はデータベースのタイムゾーンに基づいて記録されます。 それ以外の場合、SQL 文の実行完了時刻はシステムのタイムゾーンに基づいて記録されます。 SQL 文がセッションレベルでタイムゾーンを変更する場合、スロークエリログに記録されたタイムゾーンが正しく変換されない可能性があります。

参照

DAS の自律機能を有効にすることができます。 これにより、データベースインスタンスでスロー SQL クエリが検出されると、DAS はスロー SQL クエリを自動的に最適化します。