パラレルクエリ(PX)のパラメータは、パラレルクエリの速度を決定します。主に並列度とEXCHANGE関連パラメータが含まれます。
並列度パラメータ
並列度関連パラメータは、クエリが同時実行される際のワーカー数を主に決定します。
パラメータ名 |
説明 |
値の範囲 |
デフォルト値 |
設定の推奨事項 |
|---|---|---|---|---|
| parallel_servers_target | クエリをキューに入れる前に、クエリが要求する並列度と統計されたワーカーの合計がこの値を超えていないかどうかをチェックします。この値を超える場合、クエリはキューに入り、そうでない場合は実行を続けます。 | [0, 9223372036854775807] | 0(現在はCPU数に基づいて計算され、実際のサイズが優先されます) | このパラメータは主にPXシナリオで、並列クエリを実行しようとしたときに、処理するための十分なワーカーがいない場合、実行を続けるかキュー待ちにするかを決定します。 |
SHOW VARIABLESを使用してこれらのパラメータの値を確認できます。例:
obclient> SHOW VARIABLES LIKE '%paral%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| parallel_servers_target | 4 |
+-------------------------+-------+
1 rows in set
EXCHANGE(Shuffle)パラメータ
EXCHANGE(Shuffle)パラメータは、各DFO間でデータ転送を行う際の制御、つまりデータShuffle時のメモリ制御を主に使用します。OceanBaseデータベースは、データ転送をDTL(Data Transfer layer)と呼ばれるモジュールにカプセル化しています。
パラメータ名 |
説明 |
値の範囲 |
デフォルト値 |
設定の推奨事項 |
|---|---|---|---|---|
| dtl_buffer_size | EXCHANGE 演算子間(つまり、TransmitとReceiveの間)でデータを送信する際の、1回の送信に使用するバッファサイズを制御します。データがこの上限値に達した場合にのみ送信されるため、各行の転送コストを削減できます。 |
[4k, 2M] | 64K | PXシナリオでは、EXCHANGE 演算子間のデータ送信はこのパラメータのサイズに依存します。通常は調整の必要はありませんが、データ送信回数を減らすなどの目的であれば変更を試すこともできます。ただし、一般的にこの値を変更することは推奨されません。 |
SHOW PARAMETERSを使用してパラメータの値を確認できます。例:
obclient> SHOW PARAMETERS LIKE '%dtl%'\G
*************************** 1. row ***************************
zone: zone1
svr_type: observer
svr_ip: 172.xx.xxx.xxx
svr_port: 2882
name: dtl_buffer_size
data_type: CAPACITY
value: 64K
info: to be removed
section: OBSERVER
scope: CLUSTER
source: DEFAULT
edit_level: DYNAMIC_EFFECTIVE
1 row in set