此项优化没有很精确的评估标准,主要还是根据实际应用sql和使用规则进行调整,通过查看gnode层的trace日志分析确定,本次只给出通用的设置原则如下:
l Heap参数(global):
Ø gbase_heap_data 主要设计用途是缓存数据(DC),应分配最多的内存
Ø gbase_heap_large 用于管理不频繁申请、释放的大块儿内存
Ø gbase_heap_temp 用来分配较为琐碎的和小块儿的临时内存,较少使用
Ø gbase_memory_pct_target 设置内存的可用比例,默认0.8
Ø gbase_buffer_distgrby:用于保存distinct操作的中间结果;
Ø gbase_buffer_hgrby: 用于保存hash group by操作的中间结果;
Ø gbase_buffer_hj: 用于保存hash join操作的中间结果;
Ø gbase_buffer_insert: 用于保存insert values的中
Ø gbase_buffer_result: 用于保存物化的中间结果;
Ø gbase_buffer_rowset: 用于保存join的行号;
Ø gbase_buffer_sj: 用于保存sort merge join的中间结果,当join条件是a>=b或者a<=b时,可能会使用sort merge join;
Ø gbase_buffer_sort: 用于保存sort操作的中间结果;