首页 > 解决方案 > Hive 多个不同的查询运行缓慢?

问题描述

为什么下面的查询需要永远完成,而如果单独查询会在几秒钟内返回?

select count(*),count(distinct a), count(distinct b) from test.tablename;

但是,如果查询以下两个查询中的任何一个,它会在几秒钟内返回。例如

select count(*),count(distinct a) from test.tablename; 

或者

select count(*),count(distinct b) from test.tablename;

有什么要加快的吗?已经对计算统计数据进行了分析。hive 配置大多是优化的。

更新:道歉。错过了问题中的计数。

标签: sqlhivequery-optimizationdistincthiveql

解决方案


如果您没有太大的计数(太大的数组会导致 OOM),则可以使用另一种方法。size(collect_set())会给你不同的计数。

select count(*), size(collect_set(a)), size(collect_set(b)) from test.tablename;

推荐阅读