-
参数名称:gbase_parallel_execution(并行开关) 取值范围:bool变量,缺省值为0(关闭并行) 参数说明:用于控制是否启用并行的开关,可以在配置文件中设置(实例级生效),也可以在session级通过set命令设置(session级生效)
-
参数名称:gbase_parallel_max_thread_in_pool(express后台线程池的总线程数) 取值范围:0~4096,默认为系统CPU核数,通常不应设置超过cpu核数的2倍 参数说明:用于配置并行执行器线程池中的总线程个数(线程池中的线程为数据库服务启动时创建,执行SQL时从线程池租用,用后归还,可有效避免线程频繁创建和销毁的代价)
-
参数名称:gbase_parallel_degree(SQL并行度) 取值范围:2~ gbase_parallel_max_thread_in_pool,小于2则表示不启用并行,最大取值范围不超过线程池可以线程数 参数说明:控制每个SQL的最大并行度
-
参数名称:_gbase_parallel_aggr_mode(并行聚集时的数据切分策略) 取值范围:0——自动评估(缺省值);1——按hash切分;2——按位置划分(Round-Robin) 参数说明:控制并行分组聚集时的数据切分策略,不同的场景适合不同策略,分组字段的distinct值较多时适合hash划分(无需二次聚集),distinct值比较少的时候适合RR划分(划分数据代价低,二次聚集成本不高)。缺省策略为自动评估,如果发现自动评估的策略不准,可以手工设置为适合的策略。
示例案例:
某测试项目,6亿行聚出100万个分组,按理说应该评估成round-robin,但这个场景的数据特征是从任何一个相对小的采样窗口(几万条甚至几十万条)看,distinct比例都非常高 30%~50%,只有当采样窗口非常大(达到几百万条规模时)才有可能知道其distinct比例比较低,因此除非采样率非常高,否则无法获知相对准确的distinct比率,但采样率太高对性能的负面影响也可能很大。类似上述场景就属于很难评估准确的,这时需要手工干预,人为设定数据切分策略。