GBase 8a
运维管理
文章

物化参数gbase_parallel_threshold调整解决导出小量数据缓慢问题

发表于2024-03-30 11:49:0641次浏览0个评论

某项目上客户反馈SQL导出最终结果约9000条数据时,需要耗时特别多,同时提出提出疑问:

集群的gbase_parallel_degree=6,但是nmon表现出就一个CPU执行,怎么理解这个并行度?这个是不是没有用上并行?
trace日志中,看统计那步好像是6个并发,但是物化这8097条 是否没用到并发了?

排查查看trace发现物化阶段单线程执行,再查看gbase_parallel_threshold参数被设置为100000,于是调整

set global gbase_parallel_threshold=1000;后性能提升明显。

参数的解释如下:
gbase_parallel_threshold 取值:大于 0(含 0)的整数 默认值:10000 说明:计算并行度使用的参数,限制启用并行的最少行数。当 scan 涉及的数据行 数<=参数 gbase_parallel_threshold 时,不走并行。 如果 sql 在结果集物化阶段为串行且花费时间占比较大,则可以调小该配置,如配 置为 500 或更小。 对于高并发精确查询场景下,建议设置该参数取值大于 90%的结果集行数,避免多 线程并行导致 CPU 资源争抢严重而出现 sys cpu 占用。 修改方式:可使用 set 语句修改值也可在配置文件中修改值。适用于 session、global 范围均可。

评论

登录后才可以发表评论