推荐原因

推荐的列可以用来做表的sort key

挑选的是经常出现在过滤语句中的列,如果将这些列设置为表的sort key,可以加快query的执行速度

如何启用

  • 可以在workspace上设置property ,会分析workspace下所有的表
ALTER WORKSPACE workspace_name SET properties (auto_index='day[,150,5,100]');

比如:
ALTER WORKSPACE quick_start SET properties (auto_index='day'); 
ALTER WORKSPACE quick_start SET properties (auto_index='day,150,5,100');

第一个参数为必须设置,即指定是每天收集还是每月收集,每月收集为每月1号收集,收集时间为晚上6点
第二个参数为使用最近多长时间的job(单位是分钟),默认为150
第三个参数为job需要重复多少次才会被使用,默认为5
第四个参数为每个列使用的最多的job数,默认为100
  • 自动收集

会自动收集每个schema中过滤语句使用的最多的10张表

如何查询

Select * from information_schema.sortkey_candidates;

返回结果比如:
instance_id,workspace_id,workspace_name,schema_id,schema_name,table_id,table_name,col,statement,ratio,insert_time,p_date
11111111111,855911111111,aaaaaaaaaaa,23671111111111,ddddddddd,84465111,aaaaaaaaaaa.ddddddddd.member,brandid,alter table aaaaaaaaaaa.ddddddddd.member set properties("hint.sort.columns"="brandid"), 2.21%,05:49.1,2024/11/7
11111111111,855911111111,aaaaaaaaaaa,23671111111111,ddddddddd,84465111,aaaaaaaaaa.ddddddddd.member,birthday,alter table aaaaaaaaaa.ddddddddd.member set properties("hint.sort.columns"="birthday"),0.01%,05:49.1,2024/11/7
11111111111,855911111111,aaaaaaaaaaa,23671111111111,ddddddddd,84465111,aaaaaaaaaaa.ddddddddd.member,id,alter table aaaaaaaaaaa.ddddddddd.member set properties("hint.sort.columns"="id"),0.01%,05:49.1,2024/11/7

可以看到对于aaaaaaaaaaa.ddddddddd.member表来说brandid的提升效果最高,所以设置为sortkey alter table aaaaaaaaaaa.ddddddddd.member set properties("hint.sort.columns"="brandid"),此设置会对

包含的列为instance_id,workspace_id,workspace_name,schema_id,schema_name,table_id,table_name,col,statement,ratio,insert_time,p_date。

其中p_date为分区列,格式是 yyyy-mm-dd

insert_time是收集结果插入的时间

col是推荐的列,当前为单列

statement是如何将推荐列设置为排序列的sql语句

ratio为估算的提升效果,为百分比

使用建议

建议使用analyze语句对表收集一下column的stats,会提高推荐的准确性

联系我们
预约咨询
微信咨询
电话咨询