ワークロードの増加に伴い、SQL リクエスト数が増加し、データベースの監視メトリクスが上昇します。多くのリクエストは類似した特性を持つため、フル SQL 分析機能を使用しても、問題のある SQL リクエストを個別に特定することは困難です。Database Autonomy Service (DAS) の[異常 SQL リクエスト識別]機能は、機械学習を使用して SQL クエリをクラスタリングしてフィルタリングします。これにより、異常な SQL リクエストを迅速かつ正確に特定できます。
前提条件
-
インスタンスで、次のいずれかのバージョンが実行されていること:
-
ApsaraDB RDS for MySQL 5.6、5.7、または 8.0
-
ApsaraDB MyBase for MySQL 5.6、5.7、または 8.0
-
-
インスタンスで DAS の自律サービスが有効になっていること。 詳細については、「自律センター」をご参照ください。
-
インスタンスで DAS Enterprise Edition が有効になっていること。 詳細については、「Enterprise Editionの有効化」をご参照ください。
シナリオ
シナリオ:ワークロードに多数の SQL テンプレートが含まれています。どのように並べ替えても、異常な SQL リクエストを迅速に見つけることは困難です。 [SQL Performance Analysis] ページでは、スロークエリリストにある各 SQL テンプレートについて、[Average execution time]、[Percentage]、[Execution count]、[Average rows scanned]、[Average rows returned] などの主要なメトリクスと実行傾向グラフを表示できます。傾向グラフで実行時間が急増している異常な SQL リクエスト (平均実行時間が 4 秒を超えるスロークエリなど) を探します。対応する行の [Optimize] をクリックして、クエリを診断し、最適化します。
解決策:[異常 SQL リクエスト識別]機能は、2つの方法でパフォーマンスの問題を迅速に特定するのに役立ちます。
-
アプローチ 1:ビジネスで大量のリクエストを処理する場合、DAS はリクエストの振る舞いに基づいて SQL テンプレートを分類できます。例えば、何百ページもの SQL テンプレートがあり、並べ替えても問題のあるテンプレートを特定できない場合、[異常 SQL リクエスト識別]機能を使用できます。DAS はバックエンドアルゴリズムを使用して類似の振る舞いパターンを識別し、SQL テンプレートをクラスタリングすることにより、トラブルシューティングの効率を向上させます。SQL リクエスト分析ページには、[cpu_usage correlation] でソートされたテーブルが表示されます。このテーブルには、[Aggregated chart] (傾向グラフ)、[SQL Template Count]、[Average latency]、[Execution count ratio]、[Rows scanned]、[Latency ratio] などの列が含まれます。
-
アプローチ 2:[異常 SQL リクエスト識別]機能は、SQL の振る舞いをメトリクスの異常と関連付けることで、問題の調査を支援します。次のグラフは、異常なメトリクスの傾向を示しています。グラフでは、CPU 使用率とアクティブセッションのピーク時が、特定の SQL テンプレートカテゴリに対するリクエストの急激な減少と一致しています。これは、このカテゴリのリクエストが、アクティブセッションの急増中にブロックされている可能性が高いことを示しています。

操作手順
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、インスタンスモニター.
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
インスタンスの詳細ページで、自律型センター左側のナビゲーションウィンドウに表示されます。
-
期間を選択して、その期間のイベントを表示します。
例えば、[時系列異常検出]イベントの場合、詳細 をクリックします。
-
Anomaly Snapshots タブをクリックします。 異常なメトリクスの分析 セクションで、異常の原因と関連するメトリクスの変化を確認します。

-
パフォーマンスメトリクス 領域で、さまざまな異常メトリクスカテゴリを選択して、その分布を表示できます。
-
SQL リクエストの動作分析 領域で、分析するメトリクスとそれに関連するメトリクスを選択します。
DASは、上位1,000件の SQL テンプレートのデータを分析します。この機能は DAS Enterprise Edition のフル SQL 分析データに依存するため、分析には通常、データ量と利用可能な計算時間に応じて 1~5 分かかります。
-
分析結果が表示されます。
異常に最も相関のある SQL メトリクスと、関連する SQL テンプレートおよびその統計情報を表示できます。
説明相関値が 1.00 に近いほど、異常との関連性が強いことを示します。
-
結果の解釈
異常 SQL リクエスト識別を使用すると、類似した SQL テンプレートの変動傾向を観察できます。
-
この SQL リクエストカテゴリは一時的な急増を示していますが、そのタイミングはメトリクスの急増と一致していません。 したがって、次の図に示すように、このカテゴリはメトリクス異常の主な原因とは見なされません。異常 SQL リクエスト識別の結果は、[Execution Count] と [Rows Scanned] の2つのタブがあるテーブルに表示されます。テーブルには、count_type_1 から count_type_4 までの集計カテゴリ別に SQL テンプレートが一覧表示され、[SQL Template Count]、[Average latency]、[Execution count ratio]、[CPU usage similarity]、[IOPS usage similarity]、[Rows scanned]、[Latency ratio] などのメトリクスが表示されます。[View] をクリックすると、詳細が表示されます。

-
グラフは、CPU 使用率とアクティブセッションのピーク時が、ある SQL テンプレートカテゴリのリクエストの急激な減少と一致していることを示しています。これは、アクティブセッション数が急増した際に、このカテゴリの SQL リクエストがブロックされた可能性が高いことを示しています。
