当
explain sql语句查看是使用HashAggregate还是用GroupAggregate聚合函数,GroupAggregate 由于需要排序,效率很差,消耗是HashAggregate的7倍。所以在GP里面,对于这种聚合函数的使用,采用的都是HashAggregate。
如果为GroupAggregate聚合函数,需要扩大work_mem的值。
查看work_mem值:
select name,context,unit,setting,boot_val,reset_val
from pg_settings
where name in
( 'listen_addresses','max_connection','shared_buffers','effective_cache_size','work_mem','maintenance_work_mem'
)
order by context,name;
修改pgsql的postgresql.conf文件中的work_mem值,改为4M或更大的值。