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

AnalyticDB:SQL パターン

最終更新日:Mar 28, 2026

クラスターが 1 分間に何千もの類似したクエリ (フィルター値や ID のみが異なる) を実行する場合、それらを個別に分析することは非現実的です。SQL パターンは、構造的に同一のステートメントを単一のビューにグループ化することで、次のような問いに答えることができます。

  • どのクエリパターンが最も多くの CPU またはメモリを消費しているか。

  • クエリパターンのパフォーマンスは時間とともに変化したか。

  • クラスターに高負荷がかかっているときに、どのパターンが最も頻繁に実行されるか。

  • クエリパターンはどのくらいの頻度で失敗するか。

リソース使用率が 30% を超えるパターンは自動的にハイライトされます。過剰なワークロードを引き起こす SQL ステートメントはインターセプトできます。詳細については、「実行計画の永続化とクエリブロッカー」をご参照ください。

仕組み

AnalyticDB for MySQL は、リアルタイムの SQL ステートメントを分析し、SQL テキストの構造に基づいてグループ化します。フィルター条件や ID 値などのリテラル値のみが異なるステートメントは、1 つのパターンにマージされます。たとえば、次の 2 つのクエリは、WHERE 句のリテラル値のみが異なるため、同じパターンに属します。

SELECT * FROM orders WHERE user_id = 1001
SELECT * FROM orders WHERE user_id = 2048

パターンビューでは、グループ内のすべてのステートメントにわたる実行回数、CPU コスト、メモリ、持続時間、スキャンされたデータが集計されます。

注意事項

  • SQL パターンは、過去 14 日間のみ利用可能です。

  • 各クエリは、最大 24 時間の時間範囲をカバーします。

SQL パターンの表示

  1. AnalyticDB for MySQL コンソールにログインします。左上のコーナーでリージョンを選択します。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[Data Warehouse Edition] タブで、対象のクラスターを見つけてその ID をクリックします。

  2. 左側のナビゲーションウィンドウで、[診断と最適化] をクリックします。

  3. [SQL パターン] タブをクリックします。

デフォルトでは、過去 30 分間のパターンが表示されます。必要に応じて、キーワードまたは時間範囲でフィルターします。

SQL パターンリストのパラメーター

パラメーター説明
操作[詳細の表示] をクリックして、このパターンのパターン分析ページを開きます。
ユーザー名このパターンの SQL ステートメントを送信するために使用されたデータベースアカウント。
クライアント IP アドレスSQL ステートメントを送信したクライアントの IP アドレス。
SQL パターンパターンを代表する SQL ステートメント。2 アイコンをクリックして、完全なステートメントをコピーします。
合計 CPU コスト時間範囲内にこのパターンのすべてのステートメントによって消費された合計 CPU 時間。パーセンテージは、すべてのパターンの CPU 時間に占めるこのパターンの割合を示します。30% を超える値はハイライトされます。このパターンの CPU パーセンテージが高い場合は、[CPU メトリック] を確認してさらに分析してください。
合計ピークメモリ時間範囲内にこのパターンのすべてのステートメントによって消費された合計ピークメモリ。パーセンテージは、すべてのパターンのピークメモリに占めるこのパターンの割合を示します。30% を超える値はハイライトされます。このパターンのメモリパーセンテージが高い場合は、[コンピュートメモリ使用量メトリック] を確認してさらに分析してください。
合計持続時間時間範囲内にこのパターンのすべてのステートメントの合計実行時間。パーセンテージは、すべてのパターンの合計持続時間に占めるこのパターンの割合を示します。30% を超える値はハイライトされます。このパターンの持続時間のパーセンテージが上昇している場合は、[クエリ応答時間メトリック] を確認して相関関係を調べます。
読み取りデータ合計サイズ時間範囲内にこのパターンのすべてのステートメントによって読み取られたデータの合計サイズ。パーセンテージは、すべてのパターンの読み取りデータに占めるこのパターンの割合を示します。30% を超える値はハイライトされます。このパターンが不釣り合いな量のデータを読み取る場合は、[テーブルデータ読み取りメトリック] を確認してさらに分析してください。
データ読み取り合計コストこのパターン内のすべての文が期間中にデータを読み取るために費やした CPU 時間の合計です。パーセンテージは、このパターンがすべてのパターンのデータ読み取り CPU 時間に占める割合を示します。30% を超える値はハイライト表示されます。値が高いと、予約ノード(ストレージノード)の CPU 使用率が上昇します。詳細な分析については、予約ノードの CPU メトリックまたは元のストレージノードを確認してください。
平均 CPU コスト時間範囲内の実行あたりの平均 CPU 時間。
最大 CPU コスト時間範囲内の単一実行の最大 CPU 時間。
テーブル読み取りの平均 CPU コスト時間範囲内の実行あたりにデータ読み取りに費やされた平均 CPU 時間。
テーブル読み取りの最大 CPU コスト時間範囲内の単一実行でデータ読み取りに費やされた最大 CPU 時間。
実行回数時間範囲内にこのパターンのステートメントが実行された回数。この列で並べ替えると、クラスターリソースのバースト中に頻繁に実行されるパターンを特定できます。
失敗回数時間範囲内の失敗した実行の回数。
消費された合計時間の平均実行あたりの平均合計時間。単位:ミリ秒。
消費された合計時間の最大単一実行の最大合計時間。単位:ミリ秒。通常運用時に [消費された合計時間の最大][消費された合計時間の平均] に近い場合、合計時間の急増は、このパターン自体ではなく、他のパターンからのリソース競合が原因である可能性が高いです。
平均実行時間時間範囲内のステートメントあたりの平均実行時間。単位:ミリ秒。
最大実行時間時間範囲内の単一ステートメントの最大実行時間。単位:ミリ秒。詳細については、「クエリモニタリングチャートと SQL クエリの使用」をご参照ください。
平均ピークメモリ時間範囲内の実行あたりの平均ピークメモリ。単位:バイト。
最大ピークメモリ時間範囲内の単一実行の最大ピークメモリ。単位:バイト。[最大ピークメモリ][平均ピークメモリ] よりもはるかに高い場合、パターンによってスキャンされるデータが増加したか、実行計画が変更された可能性があります。[詳細の表示] をクリックして原因を特定します。
スキャンされたデータの平均時間範囲内の実行あたりにスキャンされたデータの平均量。単位:MB。
スキャン対象の最大データ量時間範囲内の単一実行でスキャンされた最大データ量。単位:MB。[スキャンされたデータの最大][スキャンされたデータの平均] よりもはるかに高い場合、スキャンされるデータは不安定です。パターンがクラスターのパフォーマンスに影響を与える前に原因を特定してください。
テーブル名このパターンのステートメントによってスキャンされたテーブルの名前。

パーセンテージメトリックの計算方法

各パーセンテージメトリックは同じ数式に従います:パターンの合計値を、すべてのパターンの合計値で割ります。

例:ある時間範囲で 5 つの SQL ステートメントが実行されます。最初の 3 つはパターン 1 に属し、残りの 2 つはパターン 2 に属します。

ステートメントごとの CPU コスト:50 ms、1 s、70 ms、1.5 s、1 s

メトリックパターン 1パターン 2
合計 CPU コスト0.05 s + 1 s + 0.07 s = 1.12 s1.5 s + 1 s = 2.5 s
CPU コストのパーセンテージ1.12 / (1.12 + 2.5) × 100% = 30.9392%2.5 / (1.12 + 2.5) × 100% = 69.0607%

ステートメントごとのピークメモリ:1 GB、2 GB、3 GB、3 GB、1 GB

メトリックパターン 1パターン 2
合計ピークメモリ1 GB + 2 GB + 3 GB = 6 GB1 GB + 3 GB = 4 GB
ピークメモリのパーセンテージ6 / (6 + 4) × 100% = 60%4 / (6 + 4) × 100% = 40%

同じ数式が [合計持続時間][読み取りデータ合計サイズ]、および [データ読み取り合計コスト] にも適用されます。

パターンの分析

[SQL パターン] タブで、[操作] 列の [詳細の表示] をクリックして、[パターン分析] ページを開きます。このページには、選択した時間範囲内のパターンの主要なメトリック (実行回数、消費された合計時間、実行時間、スキャンされたデータ、ピークメモリなど) が時系列チャートで表示されます。各メトリックについて、最大値と平均値の両方が表示され、典型的な実行と外れ値の実行を区別するのに役立ちます。

このページには、時間範囲内にこのパターンに属するすべての個別の SQL ステートメントもリストされます。[操作] 列の [診断] をクリックして、特定のステートメントの診断結果と実行計画を表示します。詳細については、「実行計画を使用したクエリの分析」をご参照ください。

API リファレンス