【云小课】【第39课】GaussDB(for openGauss)如何进行性能调优

网友投稿 949 2022-05-28

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

调优流程

调优各阶段说明,如下表所示。

阶段

描述

【云小课】【第39课】GaussDB(for openGauss)如何进行性能调优

确定性能调优范围

获取集群各节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。

SQL调优指南

审视业务所用SQL语句是否存在可优化空间,包括:

通过ANALYZE语句生成表统计信息:ANALYZE语句可收集与数据库中表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。

分析执行计划:EXPLAIN语句可显示SQL语句的执行计划,EXPLAIN PERFORMANCE语句可显示SQL语句中各算子的执行时间。

查找问题根因并进行调优:通过分析执行计划,找到可能存在的原因,进行针对性的调优,通常为调整数据库级SQL调优参数。

编写更优的SQL:介绍一些复杂查询中的中间临时数据缓存、结果集缓存、结果集合并等场景中的更优SQL语法。

数据库性能调优通常发生在用户对业务的执行效率不满意,期望通过调优加快业务执行的情况下。正如“性能因素”小节所述,数据库性能受影响因素多,从而性能调优是一项复杂的工程,有些时候无法系统性地说明和解释,而是依赖于DBA的经验判断。尽管如此,此处还是期望能尽量系统性的对性能调优方法加以说明,方便应用开发人员和刚接触GaussDB(for openGauss)的DBA参考。

性能因素

多个性能因素会影响数据库性能,了解这些因素可以帮助定位和分析性能问题。

系统资源

数据库性能在很大程度上依赖于磁盘的I/O和内存使用情况。为了准确设置性能指标,用户需要了解集群部署硬件的基本性能。CPU,硬盘,磁盘控制器,内存和网络接口等这些硬件性能将显著影响数据库的运行速度。

负载

负载等于数据库系统的需求总量,它会随着时间变化。总体负载包含用户查询,应用程序,并行作业,事务以及数据库随时传递的系统命令。比如:多用户在执行多个查询时会提高负载。负载会显著地影响数据库的性能。了解工作负载高峰期可以帮助用户更合理地利用系统资源,更有效地完成系统任务。

吞吐量

使用系统的吞吐量来定义处理数据的整体能力。数据库的吞吐量以每秒的查询次数、每秒的处理事务数量或平均响应时间来测量。数据库的处理能力与底层系统(磁盘I/O,CPU速度,存储器带宽等)有密切的关系,所以当设置数据库吞吐量目标时,需要提前了解硬件的性能。

竞争

竞争是指两组或多组负载组件尝试使用冲突的方式使用系统的情况。比如,多条查询视图同一时间更新相同的数据,或者多个大量的负载争夺系统资源。随着竞争的增加,吞吐量下降。

优化

数据库优化可以影响到整个系统的性能。在执行SQL制定、数据库配置参数、表设计、数据分布等操作时,启用数据库查询优化器打造最有效的执行计划。

调优范围确定

性能调优主要通过查看集群各节点的CPU、内存、I/O和网络这些硬件资源的使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点,然后针对性调优。

如果某个资源已达瓶颈,则:

检查关键的操作系统参数和数据库参数是否合理设置。

通过查询最耗时的SQL语句、跑不出来的SQL语句,找出耗资源的SQL,进行SQL调优指南。

如果所有资源均未达瓶颈,则表明性能仍有提升潜力。可以查询最耗时的SQL语句,或者跑不出来的SQL语句,进行针对性的SQL调优指南。

云小课 云数据库 GaussDB(for openGauss) 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Object Stroage Service OBS存储对象
下一篇:Linux系统配置(系统启动)
相关文章