Trafodion CQD-number_of_countstar_rows_parallel_threshold

在之前的一篇文章中,我们介绍了Trafodion的hbase_coprocessors这个CQD。hbase_coprocessors用于控制Trafodoin中的count(*)此类语句是否下推到HBase层使用HBase自身的coprocessors。

然而,对于count(),Trafodion中的表使用hbase_coprocessors是有条件的。默认情况下,count()走hbase_coprocessors执行计划只针对行数不超过1亿的那些表,这是通过CQD number_of_countstar_rows_parallel_threshold来控制的。

number_of_countstar_rows_parallel_threshold的默认值为100,表示100*1百万记录,即1亿记录。因此对超过亿表做count(*)时,我们经常会发现执行计划选择的是使用Trafodion多ESP并发扫描的方式。

由于大多数情况下,使用hbase_coprocessors做全表count()性能要优于多ESP并发扫描,在对大表(超过亿)做count(),我们可以使用以下方法来让执行计划选择下推hbase层执行。

CQD number_of_countstar_rows_parallel_threshold <value>;

只要满足value*1百万超过表的实际行数,即可保证count(*)执行hbase_coprocessors。
如以下CQD设置可以对所有不超过100亿的表都使用hbase_coprocessors,依此类推。

CQD number_of_countstar_rows_parallel_threshold '10000';

猜你喜欢

转载自blog.csdn.net/post_yuan/article/details/79799538