加载SQL语句中,有个设置加载并行度的参数PARALLEL,合理设置该值可以更好的利用GBase8a集群所在系统资源,提高加载效率,以下介绍一些设置该值的思路。
在手册里提及:PARALLEL用来控制集群加载并行度,取值范围[0,1024]。默认值为0,表示并行度取值是线程池最大可用线程数。
注意:设置为默认值0,并不代表使用的是当前集群可用的最大加载并行度,其值与设置的单机参数gbase_parallel_max_thread_in_pool相关(gbase_parallel_max_thread_in_pool默认是cpu核数*2,而加载SQL里PARALLEL设置为0,则并行度取值是gbase_parallel_max_thread_in_pool的一半)。而在实际使用中,可以设置该参数值为比线程池最大可用线程数大一些的值。
在集群单机层也存在并发控制参数,与加载SQL参数PARALLEL存在关联,具体如下:
执行命令在单机查看这3个单机层并发控制参数,如下:
| gbase_parallel_degree | 0 |
| gbase_parallel_execution | ON |
| gbase_parallel_max_thread_in_pool | 8 |
首先,单机并行启用开关 gbase_parallel_execution 与 加载SQL参数PARALLEL直接相关。如前所示,gbase_parallel_execution默认为on,即打开并发控制,此时,加载SQL参数PARALLEL才有效,单机采用并行处理。一旦单机层将该参数设置为off,则加载SQL参数PARALLEL也无法生效。
其次,经过测试,发现加载SQL参数PARALLEL为 0 时,实际并行度取值与gbase_parallel_max_thread_in_pool相关,为gbase_parallel_max_thread_in_pool的一半。




