首页 > 教程 > GaussDB(DWS)性能调优系列实战篇七:十八般武艺之GUC参数调优

GaussDB(DWS)性能调优系列实战篇七:十八般武艺之GUC参数调优

时间:2024-04-07 | 来源: | 阅读:139

话题: S C SSD

本篇文章主要介绍了GaussDB(DWS)性能调优涉及到的优化器和系统级GUC参数,通过合理配置这些GUC参数,能够充分利用好CPU、内存、磁盘IO和网络IO等资源,提升语句的执行性能和GaussDB(DWS)集群的整体性能。

本文分享自华为云社区《GaussDB(DWS)性能调优系列实战篇七:十八般武艺之GUC参数调优》,作者: 黎明的风。

适用版本:【8.1.1及以上】

GaussDB(DWS)性能调优系列专题文章,介绍了数据库性能调优的思路和总体策略。在系统级调优中数据库全局的GUC参数对整体性能的提升至关重要,而在语句级调优中GUC参数可以调整估算模型,选择查询计划中算子的类型,或者选择不同的执行计划。因此在SQL调优过程中合理的设置GUC参数十分重要。

优化器GUC参数调优

在GaussDB(DWS)中,SQL语句的执行所需要经历的步骤如下图所示,其中红色部分为DBA可以介入实施调优的环节。

查询计划的生成是基于一定的模型和统计信息进行代码估算,在某些场景由于统计信息不准确或者代价估算有偏差时,就需要通过GUC参数设置的的方式选择更优的查询计划。

在GaussDB(DWS)中,和SQL执行性能相关的GUC参数主要有以下几个:

  • best_agg_plan: 进行聚集计算模型的设置
  • enable_sort: 控制优化器是否使用的排序,主要用于让优化器选择使用HashAgg来实现聚集操作
  • enable_hashagg:控制优化器是否使用HashAgg来实现聚集操作
  • enable_force_vector_engine:开启参数后强制生成向量化的执行计划
  • query_dop:用户自定义的查询并行度

best_agg_plan参数

GaussDB(DWS)是分布式的数据库集群,数据计算尽量在各个DN上并行计算,可以得到最优的性能,在Stream框架下Agg操作可以分为两个场景。

Agg下层算子输出结果集的分布列是Group By列的子集。


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网