AnalyticDB for MySQL クラスターは、複数のディメンションにわたって低速クエリなどの特定の基準を満たす SQL クエリを検索できる SQL 診断機能を提供します。 検索結果を可視化し、ローカル分析のためにコンピューターにダウンロードできます。 このトピックでは、SQL 診断機能内のクエリ監視チャートと SQL クエリリストの使用方法について説明します。
クエリモニタリングチャート
SQL 診断の クエリモニタリング セクションでは、指定した時間範囲内のクエリ実行時間の分布を表示できます。これにより、実行時間の長いクエリを迅速に特定できます。
-
チャート内の各色付きブロックは、単一のクエリを表します。
-
ブロックの色に特別な意味はなく、異なるクエリを区別するためのものです。ブロックが長いほど、実行時間が長いクエリを表します。
-
ブロックにカーソルを合わせると、開始時刻や終了時刻、スキャンデータ量などのクエリ情報を表示できます。詳細 をクリックするとクエリの詳細ページに移動し、プロパティのクエリ、クエリステートメント、実装計画 などの情報を表示できます。詳細については、「実行計画を使用したクエリの分析」をご参照ください。
-
クエリモニタリング チャートには、最大 10,000 件のクエリが表示されます。各クエリの具体的な詳細は、チャートの下にある Sqlリスト テーブルに表示されます。詳細については、「SQL クエリ一覧」をご参照ください。
-
クエリモニタリング チャートには、最も時間がかかった100 (最近の5 fen zhong 内) の検索など、一般的な検索の結果のみが表示されます。Sqlリスト テーブルで詳細検索機能を使用しても、クエリモニタリング チャートに表示される結果には影響しません。詳細については、「検索方法」をご参照ください。
SQL クエリ一覧
SQL クエリ一覧では、クエリモニタリングチャートよりも多くの情報 (特定の SQL ステートメントや送信元アドレスなど) を確認できます。また、一覧の右上隅にある詳細検索機能を使用して、結果をさらに絞り込むこともできます。この絞り込みはクエリモニタリングチャートには影響しませんが、問題のあるクエリをより正確に特定するのに役立ちます。
|
パラメーター |
説明 |
使用方法 |
|
アクション |
診断 をクリックして、SQL ステートメント、統計、実行計画、診断結果などの実行詳細を表示できます。 |
診断 ページで 実装計画 をクリックしてクエリを分析します。詳細については、「実行計画を使用したクエリの分析」をご参照ください。 |
|
SQL |
SQL ステートメントです。 |
|
|
開始時刻 |
クエリが送信された時刻です。 |
N/A |
|
クエリ ID |
クエリの ID です。 |
N/A |
|
送信元アドレス |
クライアントの IP アドレスです。 |
診断と最適化 ページで 接続情報 をクリックして、送信元アドレスを表示できます。 |
|
データベース |
クライアントが接続しているデータベースの名前です。 |
詳細検索機能を使用して、データベース別に SQL ステートメントを検索できます。 |
|
ステータス |
SQL ステートメントの実行ステータスです。有効な値は次のとおりです:
|
N/A |
|
合計時間 |
SQL ステートメントが送信されてから実行が完了するまでの合計時間です。このメトリックには、キューイング、実行計画の生成、および実際の実行に費やされた合計時間が含まれます。結果データをクライアントに返すためのネットワーク転送時間は含まれません。 |
合計時間 = キューイング時間 + 実行計画の生成時間 + 実行時間。 |
|
キューイング時間 |
SQL ステートメントが実行のためにスケジュールされる前に、アクセスノードのトラフィック制御キューで待機する時間です。この期間は、SQL ステートメントがキューに入ったときに開始され、取得されて実行計画の生成が開始されるときに終了します。 |
AnalyticDB for MySQL は、アクセスノードでトラフィック制御を実行します。同時実行性が高い場合、トラフィック制御の制限を超えたクエリはキューに入れられ、長いキューイング時間が発生します。このときにコンピューティングリソースの使用率が低い場合は、キューサイズを増やしてみてください。詳細については、「インタラクティブリソースグループの優先度キューと同時実行性」をご参照ください。コンピューティングリソースの使用率が高い場合は、非効率な SQL ステートメントの根本原因を特定する必要があります。アクセスノードの詳細については、「アーキテクチャ」をご参照ください。 |
|
実行計画の生成時間 |
アクセスノードが SQL ステートメントの実行計画を解析、最適化、生成するのにかかる時間です。この期間は、SQL ステートメントがキューイングを終了して処理が開始されたときに始まり、実行計画が生成されてコンピュートノードにディスパッチされる準備ができたときに終了します。 |
SQL ステートメントがアクセスノードに送信されると、実行計画が生成されます。実行計画の生成時間が長くなる原因として、次のことが考えられます:
SQL ステートメントが複雑な場合は、結合数を減らすなどして簡略化してみてください。アクセスノードの負荷が高い場合は、大量のデータがクライアントに返されているか、クエリの同時実行数が高いかを確認してください。詳細については、「クエリレベルの診断結果」をご参照ください。 |
|
実行時間 |
コンピュートノードが SQL ステートメントを実際に実行するのにかかる時間です。この期間は、実行計画がコンピュートノードにディスパッチされて実行が開始されたときに始まり、すべてのコンピュートノードが計算タスクを完了したときに終了します。実行時間には、キューイング時間、実行計画の生成時間、またはサーバーからクライアントに結果データを返すためのネットワーク転送時間は含まれません。 |
実行時間は、コンピュートノードでの実際の計算オーバーヘッドのみを反映します。合計時間が長くても実行時間が短い場合、ボトルネックは SQL 実行効率自体ではなく、キューイングまたは実行計画の生成段階に原因がある可能性が高いです。実行時間で並べ替えることで、キューイング時間と実行計画の生成時間の影響を除外し、過剰なコンピュートリソースを消費する SQL ステートメントを正確に特定できます。 |
|
返されたデータ |
|
クライアントに大量のデータを返すことは避けてください。データ量が多いと、クエリがアクセスノードキューのリソースを消費し、他のクエリの送信と実行に影響を与える可能性があります。返されたデータ量で並べ替えることで、大量のデータを返すクエリを見つけることができます。 |
|
ユーザー名 |
クライアント接続のユーザー名です。 |
診断と最適化 ページで 接続情報 をクリックして、ユーザー名とユーザー接続数を表示できます。 |
|
リソースグループ |
SQL ステートメントを実行したリソースグループの名前です。 |
N/A |
|
ピークメモリ |
クエリによって消費されたピークメモリです。 |
AnalyticDB for MySQL executes sql statements in stages. Dependent stages run sequentially, while independent stages run in parallel. As a result, the query's memory consumption reaches a peak. Peak memory indicates the query's maximum memory consumption. |
|
スキャンデータ |
ストレージレイヤーからコンピュートレイヤーに返されるデータ量です。 |
スキャンデータ量は、クエリがストレージレイヤーにかける負荷を示します。読み取るデータが多いほど、より多くのディスク I/O リソースを消費します。また、コンピュートレイヤーもデータを処理するためにより多くのリソースを必要とし、クエリの速度に影響を及ぼします。 |
|
合計ステージ数 |
クエリに対して生成されたステージの総数です。 |
The number of stages can indicate the complexity of an sql statement. A higher number of stages means more network interactions are required during execution by AnalyticDB for MySQL, which increases the overall system load. If a query has a high number of stages, you should optimize it. For more information about stages, see Query process and execution plan. |
|
ETL書き込み行 |
ETL関連の SQL クエリによって宛先テーブルに書き込まれた行数です。 |
N/A |
Sqlリスト タブでは、次の操作を実行できます:
|
アクション |
説明 |
|
[ダウンロード] |
ダウンロード をクリックして、現在のクエリ結果を Excel ファイルとして保存します。このダウンロードは、自動的に 過去 5 回のダウンロード ドロップダウンリストに追加されます。 説明
一度に最大 100,000 レコードをダウンロードできます。 |
|
[過去 5 回のダウンロード] |
過去 5 回のダウンロード ドロップダウンリストから項目を選択し、再度ダウンロードします。 |
|
[詳細検索] |
詳細検索の表示 をクリックし、ビジネスニーズに基づいてフィルターディメンションを選択します。たとえば、クエリモニタリング からの検索結果を リソースグループ や アクセス元アドレス で絞り込みます。 |
|
[診断] |
操作 列で 診断 をクリックするとクエリ詳細ページに移動し、プロパティのクエリ、クエリステートメント、実装計画 などの情報を表示できます。詳細については、「実行計画を使用したクエリの分析」をご参照ください。 |
-
Sqlリスト タブの右上隅にある高度な検索機能を使用すると、一般的な検索の結果をさらに絞り込むことができます。 利用可能なフィルター値は、AnalyticDB for MySQL クラスター内のすべての可能な値からではなく、現在の結果セットから取得されます。 詳細については、「検索方法」をご参照ください。
-
一般的な検索条件として クエリの実行中 を選択すると、検索結果には実行時間が 10 秒を超える SQL クエリの詳細のみが表示されます。この場合、Sqlリスト テーブルには リソース消費ランキング 列が表示されます。リソース消費ランキング 列の値が小さいほど、クエリが消費するリソース (CPU やメモリなど) が多いことを示します。
-
Sqlリスト テーブルの Sql 列には、最大 5,120 文字が表示されます。この制限を超える SQL ステートメントは切り捨てられます。完全な SQL ステートメントは、ダウンロードした Excel ファイルまたはクエリ詳細ページの クエリステートメント タブで表示できます。