The performance of a parallel query is determined by the values of the parallel execution parameters, including those related to the degree of parallelism (DOP) and EXCHANGE.
Parameters about DOP
These parameters determine the number of parallel workers in each query.
| Parameter | Description | Value range | Default value | Recommended configuration |
|---|---|---|---|---|
| parallel_servers_target | Before a query is queued, the system checks whether the required DOP and the total number of required workers exceed the limit that you set for this parameter. If yes, the system queues the query. Otherwise, the system proceeds to the query execution. | [0, 1800] | 0. The value is obtained based on the number of CPUs, and the actual value must be used. |
The system determines whether to proceed to the parallel execution of a query or queue it if the number of available workers is insufficient. |
You can run the SHOW VARIABLES command to view the values of these parameters. The following example is provided:
obclient> SHOW VARIABLES LIKE '%paral%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| parallel_servers_target | 4 |
+-------------------------+-------+
1 rows in set
EXCHANGE (Shuffle) parameter
The EXCHANGE (Shuffle) parameter specifies the memory for data shuffle between data flow objects (DFOs). OceanBase Database encapsulates its data transfer service into a module called Data Transfer Layer (DTL).
| Parameter | Description | Value range | Default value | Recommended configuration |
|---|---|---|---|---|
| dtl_buffer_size | Specifies the size of the buffer for each data transmission operation between EXCHANGE operators, namely, the Transmit and Receive operators. Data is sent only when the value of this parameter reaches the upper limit. This reduces the cost of transmitting each row. |
[0, 1800] | 10. The value is determined based on the number of CPUs. The actual value must be used. |
This parameter controls the data transmission between EXCHANGE operators. We recommend that you do not modify this parameter unless you want to reduce the frequency of data transmission. |
You can run the SHOW PARAMETERS command to view the value of the parameter, as shown in the following example:
obclient> SHOW PARAMETERS LIKE '%dtl%'\G
*************************** 1. row ***************************
ZONE: zone1
SVR_TYPE: observer
SVR_IP: 10.X.X.X
SVR_PORT: 2882
NAME: dtl_buffer_size
DATA_TYPE: NULL
VALUE: 64K
INFO: to be removed
SECTION: OBSERVER
SCOPE: CLUSTER
SOURCE: DEFAULT
EDIT_LEVEL: DYNAMIC_EFFECTIVE
1 row in set