云数据库GaussDB总体调优思路

GaussDB的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,通过系统资源、吞吐量、负载等因素来帮助定位和分析性能问题,使系统性能达到可接受的范围。

GaussDB性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。

须知:性能调优过程有时候需要重启集群,可能会中断当前业务。因此,业务上线后,当性能调优操作需要重启集群时,操作窗口时间需向管理部门提出申请,经批准后方可执行。

图1 GaussDB性能调优流程

云数据库GaussDB SQL调优指南

云数据库GaussDB SQL调优指南

  • Query执行流程

    SQL引擎从接受SQL语句到执行SQL语句需要经历的步骤如图1和表1所示。其中,红色字体部分为DBA可以介入实施调优的环节。

    表1 SQL引擎执行查询类SQL语句的步骤说明

  • 调优流程

    对慢SQL语句进行分析,通常包括以下步骤:

    操作步骤

    1.收集SQL中涉及到的所有表的统计信息。在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧往往会造成执行计划严重劣化,从而导致性能问题。从经验数据来看,10%左右性能问题是因为没有收集统计信息。具体请参见更新统计信息。

    2.通过查看执行计划来查找原因。如果SQL长时间运行未结束,通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出来,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及实际运行情况,以便更准确地定位问题原因。有关执行计划的详细介绍请参见SQL执行计划介绍。

    3.审视和修改表定义。

    4.针对EXPLAIN或EXPLAIN PERFORMANCE信息,定位SQL慢的具体原因以及改进措施,具体参见典型SQL调优点。

    5.通常情况下,有些SQL语句可以通过查询重写转换成等价的,或特定场景下等价的语句。重写后的语句比原语句更简单,且可以简化某些执行步骤达到提升性能的目的。查询重写方法在各个数据库中基本是通用的。经验总结:SQL语句改写规则介绍了几种常用的通过改写SQL进行调优的方法。