定义数据库性能

管理系统性能包括度量性能、确定性能问题的原因以及应用可用的工具和技术来解决问题。

Greenplum基于数据库管理系统(DBMS)提供给请求者信息的速率来衡量数据库性能。

上级主题: 管理性能

理解性能因素

有多个关键性能因素会影响数据库性能。理解这些因素有助于确定提高性能的办法以及避免性能问题:

系统资源

数据库性能严重依赖于磁盘I/O和内存使用。为了准确地设置性能预期,需要知道DBMS所部署的硬件的基线性能。CPU、硬盘、磁盘控制器、RAM以及网络接口等硬件组件的性能将会显著地影响数据库的执行速度。

负载

负载等于来自于DBMS的请求总量,它会随着时间变化。总负载是任意给定时刻通过DBMS的用户查询、应用、批处理任务、事务和系统命令的组合。例如,总负载会在运行期末报表时增加或者在大部分用户离开办公室时减小。负载会强力地影响数据库性能。了解负载以及峰值请求时刻有助于规划最有效地利用系统资源以及允许处理最大可能的负载。

吞吐量

一个系统的吞吐量定义了它处理数据的总体能力。DBMS的吞吐量以每秒的查询数、每秒的事务数或者平均响应时间来衡量。DBMS的吞吐量与底层系统(磁盘I/O、CPU速度、内存带宽等等)的处理能力紧密相关,因此在设置DBMS吞吐量目标时了解硬件的吞吐量能力很重要。

竞争

竞争就是负载中的两个或者更多组成部分尝试以一种冲突方式使用系统的情况 — 例如,多个查询尝试同时更新同一片数据或者多个大型负载竞争系统资源。竞争加剧则吞吐量下降。

优化

DBMS优化可以影响总体的系统性能。SQL形式化、数据库配置参数、表设计、数据分布等等都让数据库查询优化器能创建更有效的访问计划。

判断可接受的性能

当有了性能调整的决定时,首先应该了解用户的系统的预期性能水平并且定义可衡量的性能需求,这样才能准确地评估系统的性能。在设置性能目标时考虑以下两点:

基线硬件性能

大部分的数据库性能问题并非由数据库而是数据库所运行的底层系统导致。I/O瓶颈、内存问题以及网络问题都能显著地降低数据库性能。在开始摸索数据库或者查询级别调整前,了解硬件和操作系统(OS)基线能力将帮助用户发现并且解决硬件相关的问题。

有关运行gpcheckperf工具验证硬件和网络性能的信息请见Greenplum数据库参考指南

性能基准

要维护好的性能或者修复性能问题,应该了解DBMS在一个定义好的负载上的能力如何。基准是一个预定义的能产生已知结果集的负载。周期性地运行相同的基准测试可以帮助发现系统性能随时间衰退的情况。使用基准可以比较负载并且发现需要优化的查询或者应用。

很多第三方组织(例如事务处理性能委员会,TPC)都为数据库产业提供了基准工具。TPC提供了TPC-H,它是一个决策支持系统,它检查大量数据、执行高度复杂的查询并且对核心业务问题给出答案。更多有关TPC-H的信息,请访问:

http://www.tpc.org/tpch