TPC是一个专门负责制定计算机事务处理能力测试标准并监督其执行的第三方组织,其中被业界广泛使用的测试方式有四种,分别是有TPC-C、TPC-E、TPC-H和TPC-DS。前两者针对OLTP业务,后两者针对OLAP业务。
OLTP主要执行日常的事务处理,包括大量增删改查,其特点为高并发、高性能,且满足ACID特性。而OLAP主要用于数据仓库,支持非常复杂的查询,查询结果侧重于决策支持,其特点为对实时性要求不高,数据量大。

TPC-E与TPC-C的主要差别在于难度,TPC-E可以理解为是TPC-C的升级版,测试内容更复杂,要求更高。
TPC-C的业务模型为批发零售业务,主要业务为订单的处理能力,涉及5种事务、9张表以及4大常见的数据类型。
TPC-E模拟的是证券交易系统,实时性要求更高。它模拟了10种实时事务、2种批处理事务。

TPC-C模拟的是一个在线零售公司的业务场景,假设仓库里包含10万个产品,负责十个区域的供货,每个区域都有单独的订单系统,一个区域管理300个客户,因此仓库总共涉及到3万个客户。树状图如上。

上图为TPC-C涉及到的9张表。
其中New-Order表示未发货的订单,发货后即删除,初始值为每个仓库9000条;Order为总订单表,每新增一个客户订单会增加一条记录,不会删除,初始化为每个客户一条订单,初始值为仓库数*每个仓库的商品数量。
TPC-C业务数据模型
TPC-C测试的能力为每分钟处理完成的事务数,主要针对neworders表。事务数越大,说明处理能力越高。
TPC-C在部署时,数据仓库的数量也会影响业务的复杂程度。另外,TPC-C也可用于测试同样的硬件配置、同样的业务量下,Oracle和PolarDB的处理性能。
TPC-C测试完后,可以将字符的报告格式化成HTML形式,使其更具可读性。
TPC-H主要针对数仓,提供了两种测试方式,其中TPC-H较为简单,TPC-DS较为复杂,支持子表达式、关联子查询、聚簇、排序等数据分析时的常用语法。
OLAP是TPC-H的测试标准,主要针统计分析、数据挖掘、分析处理等。
TPC-H模拟了一个数据库模型,容量可以在1-10000 GB几个级别种进行选择,其中包含了八张表,提供了22个决策系统里常用的查询语句,比如分组、排序、聚集、子查询、关联等。
比如一条查询语句用于查询表的定价报告,该语句的特点是带有分组、排序、聚集操作并存的单表查询。查询会访问表中95% -97%的行。
因此可见,SQL语句会根据业务量、复杂度以及涉及到的数据量来判断处理能力。
比如某语句用于查询最小代价供货商,则该语句为设计排序、聚集、子查询的多表查询。
可以结合JeMeter工具将TPC-H测试出的结果以图形的方式予以展示,方便后续在报表内使用。
另外,PolarDB也支持pgbench。
TPC-C、TPC-H的部署需要专门的软件,相对较为复杂。而pgbench是系统自带的测试系统,可以测试并发的量。其优点为系统自带,短小精悍,容易扩展。如果期望功能更强大,可以在网站下载免费插件。缺点为测试结果浮动较大,需要多做几次测试然后取平均值。此外,执行过程中无法终端测试操作,只能等测试结束。
pgbench测试的指标为TBS每秒钟处理的事务量。
PolarDB-PG基于PostgreSQL开发,因此能够支持所有PostgreSQL原生态的插件。




