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

PolarDB:低速 SQL クエリ

最終更新日:Nov 09, 2025

PolarDB for MySQL は、デフォルトで実行に 1 秒以上かかる SQL 文を低速 SQL クエリとして定義し、コンソールで SQL 分析機能を提供します。スローログの傾向と統計を表示できます。さらに、システムは関連する SQL 文の最適化の提案と診断分析を提供し、詳細な分析と最適化を実行するのに役立ちます。

事前チェック (オプション)

低速 SQL ログを表示できるようにするには、アカウントに AliyunHDMFullAccess 権限が付与されていることを確認してください。より詳細な権限管理を行うには、カスタムポリシーを作成して RAM ユーザーに特定の権限を付与し、PolarDB を柔軟に制御できます。

低速 SQL クエリの表示

  1. PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。クラスターが配置されているリージョンを選択し、クラスター ID をクリックしてクラスター詳細ページに移動します。

  2. 左側のナビゲーションウィンドウで、診断と最適化 > スロー SQL クエリ を選択します。

  3. スロー SQL クエリ ページには、次の 3 つの機能が含まれています。

    スローログ分析

    スロークエリログ分析 タブで、時間範囲を指定し、指定した時間範囲内の [低速クエリログの傾向][イベント分布][低速クエリログの統計]、および [低速クエリログの詳細] を表示します。

    説明

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

    • [低速クエリログの傾向] セクションでは、傾向チャート内の時点をクリックして、その時点での低速クエリログの統計と詳細を表示できます。

      説明

      GUI の長さ制限により SQL 文の内容が完全に表示されない場合は、ポインターを SQL 文の上に移動すると完全な内容を表示できます。

    • [イベント分布] セクションで、次の操作を実行します。

      指定した時間範囲内の低速クエリログイベントを照会できます。イベントをクリックすると、その詳細が表示されます。

    • [ノード ID] ドロップダウンリストから目的のノードを選択して、ノード上の低速クエリの数を表示します。

    • image アイコンをクリックして、低速クエリログをコンピューターにダウンロードします。

    • image をクリックして、選択および入力したパラメーターを OpenAPI コンソールに入力し、API デバッグを行います。

    • [低速クエリログの統計] タブで、次の操作を実行します。

      • リストの上部でフィルター条件を設定します。データベースエンジンによってフィルター条件は異なります。

      • 管理したい SQL テンプレートに対応する SQL ID をクリックして、ユーザー分布、クライアント分布、メトリックトレンドの相関関係、および詳細リストを表示します。

      • 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) 機能のドキュメントを表示します。

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

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

    • [低速クエリログの詳細] タブで、管理したい SQL 文を見つけ、操作 列の 最適化 または スロットリングを実行してください。 をクリックします。これにより、SQL 診断または SQL スロットリングを実行することもできます。

    自動 SQL 最適化の提案

    [自動 SQL 最適化の提案] ページで、表示したい期間を選択します。

    [自動 SQL 最適化を有効にする]: この機能は、問題のある SQL 文を自動的に識別し、インデックス最適化の提案を生成し、テーブルロックを引き起こすことなくインデックスを自動的に作成します。

    説明

    ビジネスニーズに応じた詳細については、「自動 SQL 最適化」をご参照ください。

    クエリガバナンス

    クエリのガバナンス ページで、クエリガバナンスの結果を表示します。

    • [クエリガバナンス結果の概要]: システムのタグ付けと分類後の結果データを表示します。

      説明

      SQL 実行の失敗回数 は、DAS Enterprise Edition が有効になっているインスタンスの失敗した SQL 実行のみをカウントします。

    • [クエリガバナンストレンド]: 選択した時間範囲内のクエリガバナンス結果の傾向を表示します。

    • 上位ランキング: 最もパフォーマンスの高いインスタンス最もパフォーマンスの低いインスタンス を表示します。

      • パフォーマンスが最も悪いインスタンス: RDS インスタンスで低速クエリを引き起こす SQL 文の実行回数を表示します。

      • パフォーマンスが最も良いインスタンス: RDS インスタンスで低速クエリを引き起こす SQL 文の実行回数の変化を示します。負の値は SQL 文の実行回数の減少 (良好な最適化効果) を示します。正の値は SQL 文の実行回数の増加を示します。

      DAS は、最適化可能な SQL について、パフォーマンスが最も良いインスタンスと最も悪いインスタンスに注目することをお勧めします。

    • 最適化対象の SQL: フィルター条件を設定して、ガバナンスが必要な SQL 文をフィルターできます。

      説明

      データベース名、SQL キーワード、ルールタグ、およびデータベースユーザー名でフィルターできます。これら 4 つのフィルター間の論理関係は「AND」です。

      • 複数のデータベース名をコンマ (,) で区切ります。データベース名は OR 演算子を使用して評価されます。

      • 複数の SQL キーワードをスペースで区切ります。SQL キーワードは AND 演算子を使用して評価されます。

      • 複数のデータベースユーザー名をコンマ (,) で区切ります。ユーザー名は OR 演算子を使用して評価されます。

      • 複数のルールタグを選択できます。選択したルールは OR 演算子を使用して評価されます。

      • ターゲット SQL サンプルの 操作 列にある 提案 をクリックして、詳細なガバナンスの提案を表示します。

      • ターゲット SQL サンプルの 操作 列にある タグの追加 をクリックして、この SQL に手動でタグを付けます。タグの具体的な意味については、「手動で追加できる SQL タグ」をご参照ください。

        タグを一括で追加したい SQL サンプルを選択することもできます。

      • ターゲット SQL サンプルの 操作 列にある [サンプル] をクリックして、この SQL のスローログサンプルの詳細を表示します。

      • ターゲット SQL サンプルの 操作 列にある 推移 をクリックして、この SQL のスローログ分析の詳細を表示します。スローログ分析の詳細な紹介と操作については、「低速クエリログ」をご参照ください。

      必要に応じて、最適化が必要な SQL 文をエクスポートおよび共有できます。詳細については、「低速クエリログ」をご参照ください。

    • 失敗した SQL: フィルター条件を設定して、表示したい SQL 文をフィルターできます。

      説明
      • 失敗した SQL は、DAS Enterprise Edition が有効になっているインスタンスの失敗した SQL 実行のみをカウントします。

      • データベース名と SQL キーワードでフィルターできます。フィルター条件は AND 演算子を使用して評価されます。

        • 複数のデータベース名をコンマ (,) で区切ります。データベース名は OR 演算子を使用して評価されます。

        • 複数の SQL キーワードをスペースで区切ります。SQL キーワードは AND 演算子を使用して評価されます。

      ターゲット SQL サンプルの 操作 列にある [サンプル] をクリックして、この SQL のサンプルの詳細を表示します。

低速 SQL のしきい値の調整

PolarDB コンソール設定と管理 > パラメーター ページに移動して、long_query_time パラメーターを設定し、低速 SQL クエリを定義するためのしきい値を調整できます。

パラメーター

説明

long_query_time

パラメーター値を超えるすべてのクエリをスロークエリログに記録します。

有効値: 0.03-31536000、デフォルト値: 1、単位: 秒。

よくある質問

スロークエリログに記録された SQL 文の実行完了時刻が、SQL 文の実際の実行時刻と異なるのはなぜですか。

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

低速 SQL クエリを見つけるにはどうすればよいですか。

次のいずれかの方法で低速 SQL クエリを見つけることができます。

  • コンソールで低速 SQL クエリを直接表示します。詳細については、「低速 SQL クエリ」をご参照ください。

  • データベースクラスターに接続し、show processlist を実行して、実行に時間がかかる SQL 文を見つけます。データベースクラスターへの接続方法については、「データベース接続」をご参照ください。

関連 API 操作

API

説明

DescribeSlowLogs

PolarDB for MySQL クラスターのスロークエリログに関する統計を照会します。

DescribeSlowLogRecords

PolarDB for MySQL クラスターのスロークエリログの詳細を照会します。

DescribeDBClusterAuditLogCollector

PolarDB for MySQL クラスターで SQL データコレクターが有効になっているかどうかを照会します。SQL データコレクターの機能には、監査ログと SQL エクスプローラーが含まれます。

ModifyDBClusterAuditLogCollector

PolarDB for MySQL クラスターの SQL データコレクターを有効または無効にします。SQL データコレクターの機能には、監査ログと SQL エクスプローラーが含まれます。