AnalyticDB for MySQLは、SQL診断機能を提供します。 さまざまな条件に基づいてスロークエリなどのSQLクエリを検索し、検索結果をグラフとして表示できます。 検索結果をダウンロードしてコンピューターに保存することもできます。 このトピックでは、SQL診断でクエリモニタリングチャートとSQLクエリを使用する方法について説明します。
モニタリングチャートの照会
[SQL診断] タブの [クエリモニタリング] セクションでは、特定の時間範囲内に実行されたクエリの期間を表示して、最も時間を消費するクエリをすばやく特定できます。
チャート内の各色のバーは、単一のクエリを表します。
異なるクエリを互いに区別するために、異なる任意の色が使用される。 色付きのバーが長いほど、対応するクエリによって消費される実行時間が長くなります。
クエリに対応する色付きのバーの上にポインターを移動すると、開始時間、終了時間、スキャンされたデータの量などの詳細が表示されます。 [詳細] をクリックしてクエリの詳細ページに移動し、プロパティのクエリ 、クエリステートメント 、および 実装計画 パラメーターを表示します。 詳細については、「実行計画を使用したクエリの分析」をご参照ください。
クエリモニタリング セクションには、最大10,000個のクエリを表示できます。 各クエリの特定の情報は、モニタリングチャートの下の Sqlリスト セクションに表示されます。 詳細については、このトピックの「SQLクエリ」セクションをご参照ください。
クエリモニタリング セクションには、クエリの一般的な検索結果のみが表示されます。 たとえば、最近の5 fen zhong および 最も時間がかかった100 の条件を満たすクエリを検索できます。 Sqlリスト タブの右上隅にある高度な検索は、クエリモニタリング セクションに表示される結果には影響しません。 詳細については、「概要」トピックの「検索方法」セクションをご参照ください。
SQLクエリ
SQLクエリは、特定のSQL文やソースアドレスなど、クエリ監視チャートよりも多くの情報を表示できます。 [SQLクエリ] タブの右上隅にある高度な検索機能を使用して、検索結果をさらにフィルタリングできます。 これにより、誤ったクエリをより正確に見つけることができます。 高度な検索結果は、クエリモニタリングチャートに表示される結果には影響しません。
パラメーター | 説明 | 指示 |
操作 | SQL文、統計、実行計画、診断結果などの実行の詳細を表示できる診断操作。 | [診断] をクリックします。 表示されるページで、[実行計画] タブをクリックしてクエリを分析します。 詳細については、「実行計画を使用したクエリの分析」をご参照ください。 |
SQL | 実行されたSQL文。 | アイコンをクリックして、SQL文をコピーします。 |
開始時間 | クエリが送信された時刻。 | なし |
クエリID | クエリのID。 | なし |
送信元アドレス | クライアントへの接続に使用されるIPアドレス。 | [診断と最適化] ページで、[接続情報] タブをクリックして送信元アドレスを表示します。 |
データベース | クライアントへの接続に使用されるデータベースの名前。 | 高度な検索機能を使用して、データベースに基づいてSQLクエリを検索します。 |
Status | SQL文の実行ステータス。 有効な値:
| なし |
合計期間 | SQL文が送信されてから実行が完了するまでに消費された合計時間。 合計期間=キュー時間 + 実行プラン期間 + 実行期間。 | なし |
キューイング時間 | SQL文がキューで費やす時間。 SQL文がAnalyticDB for MySQLのアクセスノードに送信されてから実行が開始されるまでの時間です。 | AnalyticDB for MySQLは、多数のクエリが同時に実行される場合、アクセスノードにスロットリングを実装します。 送信されたクエリの数が実行可能なクエリの最大数以上の場合、新しいクエリがキューに追加されます。 それらは、長期間にわたってキューに留まることができる。 この場合、消費されるコンピューティングリソースが少ない場合は、クエリの最大数を増やして、より多くのクエリを実行できるようにすることができます。 詳細については、「インタラクティブリソースグループの優先キューと同時実行制御」をご参照ください。 大量のコンピューティングリソースが消費されている場合は、悪いクエリとその原因を特定する必要があります。 アクセスノードの詳細については、「アーキテクチャ全体」をご参照ください。 |
実行プラン期間 | 実行プランの生成に費やされた時間。 | 実行プランは、SQL文がアクセスノードに送信された後に生成されます。 次の理由により、実行計画の生成に時間がかかる場合があります。
複雑なSQLステートメントを使用する場合は、ステートメントを最適化できます。 たとえば、使いすぎた結合をステートメントから削除できます。 アクセスノードのリソース使用率が高い場合、大量のデータがクライアントに返されているかどうか、または多数のクエリが同時に実行されているかどうかを確認できます。 詳細については、「クエリレベルの診断結果」をご参照ください。 |
実行期間 | SQL文の実行に費やされた時間。 | 表示されるクエリを実行期間で並べ替えます。 並べ替え結果、キューイング時間、実行計画の期間に基づいて、リソースを消費するクエリを検索します。 |
返されたデータ | SELECTステートメントによってクライアントに返されるデータの量。 | 大量のデータを返すクエリは、大量のコンピューティングリソースを消費します。 これは、他のクエリの送信および実行に影響を及ぼし得る。 表示されたクエリを返されたデータ量で並べ替えます。 ソート結果に基づいて、大量のデータを返すクエリを検索します。 |
ユーザー名 | クライアントへの接続に使用されるユーザーの名前。 | [診断と最適化] ページで、[接続情報] タブをクリックして、ユーザー名とユーザー接続数を表示します。 |
リソースグループ | SQL文を実行するリソースグループの名前。 | なし |
ピークメモリ | クエリのピークメモリ使用量。 | AnalyticDB for MySQLは、SQLクエリを段階的に実行します。 従属ステージは直列に実行され、独立ステージは並列に実行される。 したがって、占有されるメモリの量に対してピーク使用量が存在する。 この制限はこのパラメータに反映されます。 |
スキャンされたデータ | ストレージレイヤからコンピューティングレイヤに返されるデータの量。 | スキャンされたデータの量は、ストレージ層でのリソース使用量を反映します。 読み取られるデータが多いほど、より多くのディスクI/Oリソースが消費されます。 この場合、コンピューティング層もより多くのリソースを必要とし、クエリが遅くなります。 |
総ステージ数 | クエリから生成されたステージの総数。 | ステージの数は、SQL文の複雑さを反映しています。 多数のステージは、SQLステートメントを実行するために実質的なネットワーク相互作用を必要とし、膨大なシステムリソースを消費する。 SQL文が多数のステージを生成する場合は、SQL文を最適化する必要があります。 ステージの概念の詳細については、「クエリプロセスと実行計画」をご参照ください。 |
ETL書かれた行 | extract-transform-load (ETL) 関連クエリによって目的のテーブルに書き込まれる行数。 | なし |
次の表に、Sqlリスト タブで実行できる操作を示します。
API 操作 | 説明 |
ダウンロード | ダウンロード をクリックして、クエリ結果をExcelファイルに保存します。 ファイルは自動的に [Last 5 Downloads] ドロップダウンリストに保存されます。 説明 一度に最大100,000のレコードをダウンロードできます。 |
過去5回のダウンロード | [Last 5 Downloads] ドロップダウンリストからダウンロードするクエリ結果を選択して、ダウンロードを完了します。 |
高度な検索を表示 | 詳細検索の表示 をクリックし、フィルター条件を設定します。 たとえば、リソースグループ または アクセス元アドレス に基づいてフィルター条件を設定し、クエリモニタリング セクションでクエリ結果をさらにフィルター処理できます。 |
診断 | 操作 列の 診断 をクリックしてクエリの詳細ページに移動し、プロパティのクエリ 、クエリステートメント 、および 実装計画 パラメーターを表示します。 詳細については、「実行計画を使用したクエリの分析」をご参照ください。 |
Sqlリスト タブの右上隅にある高度な検索機能を使用して、一般的な検索結果をさらにフィルタリングできます。 高度な検索セクションのフィルター条件の有効な値は、現在のAnalyticDB for MySQLクラスターのすべての値ではなく、一般的な検索結果の既存の値です。 詳細については、「概要」トピックの「検索方法」セクションをご参照ください。
一般検索で クエリの実行中 を選択した場合、完了までに10秒以上かかったSQLクエリの詳細のみが検索結果に表示され、リソース消費ランキング 列が Sqlリスト タブに表示されます。 リソース消費ランキング 列の値が小さいほど、対応するクエリで消費されるCPUリソースとメモリリソースが多いことを示します。
Sqlリスト タブの Sql 列に最大5,120文字を表示できます。 SQL文の長さが5,120文字を超えると、追加の文字が切り捨てられます。 完全なSQL文は、ダウンロードしたExcelファイルまたは対応するクエリの詳細ページの クエリステートメント タブで表示できます。