

# Aurora MySQL の並列クエリのモニタリング
<a name="aurora-mysql-parallel-query-monitoring"></a>

 Aurora MySQL クラスターがパラレルクエリを使用している場合、`VolumeReadIOPS` 値が増加することがあります。パラレルクエリでは、バッファプールは使用されません。したがって、クエリは高速ですが、この最適化された処理により、読み取り操作とそれに関連する料金が増加する可能性があります。

 [Amazon RDS コンソールでのメトリクスの表示](USER_Monitoring.md) で説明されている Amazon CloudWatch メトリクスに加えて、Aurora は他のグローバルなステータス可変を提供します。これらのグローバルステータス可変を使用して、パラレルクエリの実行のモニタリングに役立てることができます。これらの変数からは、オプティマイザが特定の状況でパラレルクエリを使用したり、使用しなかったりする理由についてのインサイトを得ることができます。これらの可変にアクセスするには、`[SHOW GLOBAL STATUS](https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html)` コマンドを使用します。これらの可変は次のとおりです。

 パラレルクエリセッションは、データベースによって実行されるクエリと必ずしも 1 対 1 のマッピングにはなっていません。例えば、クエリプランにパラレルクエリを使用する 2 つのステップがあるとします。この場合、クエリには 2 つのパラレルセッションが含まれ、試行された要求と成功したリクエストのカウンターは 2 つずつ増分されます。

 `EXPLAIN` ステートメントを発行してパラレルクエリを試してみると、実際にはクエリが実行されていなくても「選択されていません」と指定されたカウンターの増加が見込まれます。本稼働環境でパラレルクエリを処理する場合、「選択されていない」カウンターが予想どおりに高速に増加しているかどうかを確認できます。その段階で、目的のクエリでパラレルクエリが実行されるように調整できます。これを行うには、パラレルクエリが有効になっている クラスターの設定、クエリの組み合わせ、DB インスタンスなどを変更します。

 これらのカウンターは、DB インスタンスレベルで追跡されます。別のエンドポイントに接続すると、各 DB インスタンスが独自のパラレルクエリセットを実行するため、別のメトリクスが表示されることがあります。リーダーエンドポイントがセッションごとに異なる DB インスタンスに接続すると、別のメトリクスが表示されることもあります。


| 名前 | 説明 | 
| --- | --- | 
|  `Aurora_pq_bytes_returned`  |  パラレルクエリ中にヘッドノードに送信されたタプルデータ構造のバイト数。`Aurora_pq_pages_pushed_down` と比較するために 16,384 で割ります。  | 
|  `Aurora_pq_max_concurrent_requests`  |  この Aurora DB インスタンスで同時に実行できるパラレルクエリセッションの最大数。これは、AWS の DB インスタンスクラスによって異なる固定の数です。  | 
|  `Aurora_pq_pages_pushed_down`  |  パラレルクエリがヘッドノードへのネットワーク送信を回避したデータページ数 (それぞれ 16 KiB の固定サイズ)。  | 
|  `Aurora_pq_request_attempted`  |  リクエストされたパラレルクエリセッションの数。この値は、サブクエリや結合などの SQL 構成に応じて、クエリごとに複数のセッションを表す場合があります。  | 
|  `Aurora_pq_request_executed`  |  パラレルクエリセッションの数は正常に実行されます。  | 
|  `Aurora_pq_request_failed`  |  クライアントにエラーを戻したパラレルクエリセッションの数。場合によっては、例えば、ストレージレイヤーの問題のために、パラレルクエリのリクエストが失敗することがあります。このような場合、失敗したクエリ部分は、非パラレルクエリメカニズムを使用して再試行されます。再試行されたクエリも失敗すると、エラーがクライアントに返され、このカウンターが増分されます。  | 
|  `Aurora_pq_request_in_progress`  |  現在進行中のパラレルクエリセッションの数。この数は、Aurora DB クラスター全体ではなく、接続している特定の Aurora DB インスタンスのものが適用されます。DB インスタンスが同時実行の制限に近いかどうかを調べるには、この値を `Aurora_pq_max_concurrent_requests` と比較します。  | 
|  `Aurora_pq_request_not_chosen`  |  クエリを満たすためにパラレルクエリが選択されなかった回数。この値は、他のいくつかのより細かいカウンターの合計です。`EXPLAIN` ステートメントでは、クエリが実際に実行されていない場合でもこのカウンターは増加します。  | 
|  `Aurora_pq_request_not_chosen_below_min_rows`  |  テーブル内の行数のためにパラレルクエリが選択されなかった回数。`EXPLAIN` ステートメントでは、クエリが実際に実行されていない場合でもこのカウンターは増加します。  | 
|  `Aurora_pq_request_not_chosen_column_bit`  |  射影された列の中にサポートされていないデータ型があるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_column_geometry`  |  テーブルに `GEOMETRY` データ型の列があるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。この制限を解除する Aurora MySQL のバージョンについては、[Aurora MySQL バージョン 3 への パラレルクエリクラスターのアップグレード](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-upgrade-pqv2) を参照してください。  | 
|  `Aurora_pq_request_not_chosen_column_lob`  |  `LOB` データタイプ、または宣言された長さのため外部に保存された `VARCHAR` カラムをテーブルが持っていることが原因で、非パラレルクエリの処理パスを使用したパラレルクエリのリクエスト数。この制限を解除する Aurora MySQL のバージョンについては、[Aurora MySQL バージョン 3 への パラレルクエリクラスターのアップグレード](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-upgrade-pqv2) を参照してください。  | 
|  `Aurora_pq_request_not_chosen_column_virtual`  |  テーブルに仮想列があるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_custom_charset`  |  テーブルにカスタム文字セットの列があるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_fast_ddl`  |  テーブルが高速 DDL の `ALTER` ステートメントによって変更中であるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_few_pages_outside_buffer_pool`  |  パラレルクエリを価値のあるものにするためのバッファされていないテーブルデータが十分ないため、テーブルデータの 95 パーセント未満がバッファプールにあったにもかかわらず、パラレルクエリの回数は選択されませんでした。  | 
|  `Aurora_pq_request_not_chosen_full_text_index`  |  テーブルに全文インデックスがあるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_high_buffer_pool_pct`  |  テーブルデータの高パーセンテージ (現在は 95 パーセント以上) が既にバッファプールに入っていたため、パラレルクエリが選択されなかった回数。このような場合、オプティマイザは、バッファプールからのデータの読取りがより効率的であると判断します。`EXPLAIN` ステートメントでは、クエリが実際に実行されていない場合でもこのカウンターは増加します。  | 
|  `Aurora_pq_request_not_chosen_index_hint`  |  クエリにインデックスヒントが含まれているために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_innodb_table_format`  |  テーブルが、サポートされていない InnoDB の行形式を使用しているために、パラレルクエリ以外の処理方法が適用されるパラレルクエリのリクエスト数。Aurora のパラレルクエリは、`COMPACT`、`REDUNDANT`,および `DYNAMIC` の行形式にのみ適用されます。  | 
|  `Aurora_pq_request_not_chosen_long_trx`  |  長時間実行トランザクション内でクエリがスタートされているために、非パラレルクエリ処理パスを使用したパラレルクエリリクエストの数。`EXPLAIN` ステートメントでは、クエリが実際に実行されていない場合でもこのカウンターは増加します。  | 
|  `Aurora_pq_request_not_chosen_no_where_clause`  |  クエリに `WHERE` 句がないために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_range_scan`  |  インデックスの範囲スキャンを使用しているために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_row_length_too_long`  |  すべての列の合計長が長すぎるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_small_table`  |  行数および平均行長によって決定される、テーブルの全体的なサイズのためにパラレルクエリが選択されなかった回数。`EXPLAIN` ステートメントでは、クエリが実際に実行されていない場合でもこのカウンターは増加します。  | 
|  `Aurora_pq_request_not_chosen_temporary_table`  |  クエリでサポートされていない `MyISAM` また `memory` テーブルタイプを使用しているテンポラリテーブルを参照しているために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_tx_isolation`  |  クエリでサポートされていないトランザクション分離レベルを使用しているために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。リーダー DB インスタンスでは、パラレルクエリは `REPEATABLE READ` および `READ COMMITTED` 分離レベルにのみ適用されます。  | 
|  `Aurora_pq_request_not_chosen_update_delete_stmts`  |  クエリが `UPDATE` または `DELETE` ステートメントの一部であるために、パラレルクエリ以外の処理方法が使用されるパラレルクエリのリクエスト数。  | 
|  `Aurora_pq_request_not_chosen_unsupported_access`  |  `WHERE` 句がパラレルクエリの基準を満たしていないために、非パラレルクエリ処理パスを使用するパラレルクエリリクエストの数。この結果は、クエリがデータ集約型スキャンを必要としない場合、またはクエリが `DELETE` または `UPDATE` ステートメントである場合に発生します。  | 
|  `Aurora_pq_request_not_chosen_unsupported_storage_type`  |  Aurora MySQL DB クラスターがサポートされている Aurora クラスターストレージ設定を使用していないために非並列クエリ処理パスを使用する並列クエリリクエストの数。このパラメータは、Aurora MySQL バージョン 3.04 以降で使用できます。詳細については、「[制限](aurora-mysql-parallel-query.md#aurora-mysql-parallel-query-limitations)」を参照してください。  | 
|  `Aurora_pq_request_throttled`  |  特定の Aurora DB インスタンスで既に実行されている同時パラレルクエリの最大数のために、パラレルクエリが選択されなかった回数。  | 