Aurora MySQL の並列クエリのモニタリング - Amazon Aurora

Aurora MySQL の並列クエリのモニタリング

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

Amazon RDS コンソールでのメトリクスの表示 で説明されている Amazon CloudWatch メトリクスに加えて、Aurora は他のグローバルなステータス可変を提供します。これらのグローバルステータス可変を使用して、パラレルクエリの実行のモニタリングに役立てることができます。これらの変数からは、オプティマイザが特定の状況でパラレルクエリを使用したり、使用しなかったりする理由についてのインサイトを得ることができます。これらの可変にアクセスするには、SHOW GLOBAL STATUS コマンドを使用します。これらの可変は次のとおりです。

パラレルクエリセッションは、データベースによって実行されるクエリと必ずしも 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_pq_request_not_chosen_column_lob

LOB データタイプ、または宣言された長さのため外部に保存された VARCHAR カラムをテーブルが持っていることが原因で、非パラレルクエリの処理パスを使用したパラレルクエリのリクエスト数。この制限を解除する Aurora MySQL のバージョンについては、Aurora MySQL バージョン 3 への パラレルクエリクラスターのアップグレード を参照してください。

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 のパラレルクエリは、COMPACTREDUNDANT,および 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_pq_request_throttled

特定の Aurora DB インスタンスで既に実行されている同時パラレルクエリの最大数のために、パラレルクエリが選択されなかった回数。