パラレルクエリ(PX)のパラメータ(変数または構成パラメータ)は、パラレルクエリの速度を決定し、主に並列度とEXCHANGE関連パラメータが含まれます。
並列度変数
並列度関連変数は、主に各クエリが同時実行される際のWorker数を決定します。
変数名 |
説明 |
値の範囲 |
デフォルト値 |
設定の推奨 |
|---|---|---|---|---|
| parallel_servers_target | クエリがキューイングされる前に、クエリが要求する並列度と統計されたWorkerの合計がこの値を超えていないかどうかをチェックします。この値を超える場合、クエリはキューイングされ、そうでない場合は実行を続けます。 | [0, 9223372036854775807] | 0(現在はCPU数に基づいて計算され、実際のサイズが優先されます) | この変数は主に、PXシナリオでパラレルクエリを実行しようとしたとき、処理するためのWorkerが十分にいない場合に、実行を続けるかキュー待ちにするかを決定します。 |
これらの変数の値はSHOW VARIABLESで確認できます。例:
obclient> SHOW VARIABLES LIKE '%paral%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| parallel_servers_target | 4 |
+-------------------------+-------+
1 rows in set
EXCHANGE(Shuffle)構成パラメータ
EXCHANGE(Shuffle)構成パラメータは、主にDFO(Distributed Function Operator)間のデータ転送時のメモリ管理とデータ再配分戦略、つまりデータShuffle時のメモリ制御を制御します。OceanBaseデータベースは、データ転送をDTL(Data Transfer layer)と呼ばれるモジュールにカプセル化しています。
構成パラメータ名 |
説明 |
値の範囲 |
デフォルト値 |
設定の推奨 |
|---|---|---|---|---|
| dtl_buffer_size | EXCHANGE演算子間(すなわちTransmitとReceiveの間)でデータを送信する際、毎回送信するデータのBufferサイズを制御します。データがこの上限値に達した場合にのみ送信することで、各行の転送コストを削減します。 |
[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