Greenplum或DeepGreen数据库查看表歪斜的方法总结(3)
前几天写的两篇博客介绍如何根据表的数据文件来查看数据倾斜度,如下:
http://blog.****.net/jiangshouzhuang/article/details/51792580
http://blog.****.net/jiangshouzhuang/article/details/51850975
下面总结其他的一些常用方法:
1、使用隐藏字段gp_segment_id
select gp_segment_id ,count(1) from test group by 1 order by 1;
2、使用get_ao_distribution
select * from get_ao_distribution('test');
3、使用 pg_relation_size和get_dist_random
select gp_segment_id,pg_relation_size(oid)
from gp_dist_random('pg_class')
where relname = 'test';
4、SQL查询表发生比较严重的数据倾斜:
select tabname ,max(size)/(avg(size) + 0.001) as max_div_avg, sum(size) total_size
from (
select gp_segment_id, oid::regclass tabname ,pg_relation_size(oid) size
from gp_dist_random('pg_class')
where relkind = 'r' and relstorage in ('a','h')
)t group by tabname
order by max_div_avg desc;