关于pipeline和并行度

机器:3台be,8核64G内存
数据量:image ,514049889条数据

查询一个like,这个值不存在时会扫描所有数据,观察执行时间。

sr官方文档 https://docs.starrocks.com/zh-cn/main/administration/Query_management
当设置 set enable_pipeline_engine = true时,影响并行度的参数是pipeline_dop,

设置set pipeline_dop = 1;
只有1个核负载100,执行时间1m8s
image

设置set pipeline_dop = 4;
image

参数是起作用的。

当设置 set enable_pipeline_engine = false时,影响并行度的参数是parallel_fragment_exec_instance_num,

设置set parallel_fragment_exec_instance_num = 1;

设置set parallel_fragment_exec_instance_num = 4;

可以看到差距没有很明显,而且无论设置1或者4,三台机器的负载均打满,请问这个参数的正确用法应该是什么呢?是不是我理解的有偏差

您好,该参数在机器资源充裕的情况下使用,会提升查询效率。

我的意思是parallel_fragment_exec_instance_num参数没有生效,想了解一下这个参数是不是我测试所理解的意思呢?

您好,并不是调高了并行度,查询效率就一定会被提高,您可以通过查看profile中的OLAP_SCAN_NODE (id=x)来查看并行度是否生效,同id的表示同一个表的scan信息。

好的了解,谢谢~