1. TPC简介
TPC 即事务处理性能委员会( Transaction ProcessingPerformance Council ,官网:http://tpc.org),是由数10家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。
TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其它测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。(需要自己写测试工具,测试完之后提交给TPC协会)为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(FullDisclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。
2. TPC 推出的基准
- 目前活跃的基准
基准名称 | 当前版本 | 相关文档 | 下载地址 | 说明 |
---|---|---|---|---|
TPC-C | 5.11.0 | n/a | OLTP,用于测试数据库系统的事务处理能力 | |
TPC-DI | 1.1.0 | Download TPC-DI_Tools_v1.1.0.zip | ETL | |
TPC-DS | 2.13.0 | Download TPC-DS_Tools_v2.13.0.zip | OLAP,商业智能/决策支持处理能力 | |
TPC-E | 1.14.0 | Download TPC-E_Tools_v1.14.0.zip | OLTP,大型企业信息服务测试基准程序 | |
TPC-H | 2.18.0 | Download TPC-H_Tools_v2.18.0.zip | OLAP,随机查询/商业智能处理能力 | |
TPCx-BB | 1.5.0 | Download TPCX-BB_Tools_v1.5.0.zip | 大数据分析系统 | |
TPCx-BB (valid until 2021-04-23) | 1.4.0 | Download TPCX-BB_Tools_v1.4.0.zip | 大数据分析系统 | |
TPCx-HCI | 1.1.7 | Download TPCx-HCI_Benchmarking_Kit_v1.1.7.zip | 超融合基础架构 | |
TPCx-HS | 2.0.3 | Download TPCX-HS_Tools_v2.0.3.zip | 大数据 Hadoop 系统 | |
TPCx-IOT | 1.0.5 | Download TPCX-IOT_Tools_v1.0.5.zip | 物联网网关系统 | |
TPCx-V | 2.1.7 | Download TPCx-V_Benchmarking_Kit_v2.1.7.zip | 虚拟数据库 |
- 过时的基准
基准名称 | 当前版本 | 相关文档 | 下载地址 | 说明 |
---|---|---|---|---|
TPC-A | 2.0.0 | n/a | OLTP, 废弃 | |
TPC-APP | 1.3.0 | n/a | 废弃,用于测试7×24 环境下B2B 的应用服务和Web 服务的能力 | |
TPC-B | 2.0.0 | n/a | OLTP, 废弃 | |
TPC-D | 2.1.0 | n/a | OLAP, 废弃,商业智能/决策支持/长查询 | |
TPC-R | 2.1.0 | n/a | OLAP, 废弃,商业智能/决策支持,QphR@Size | |
TPC-VMS | 1.2.0 | n/a | 数据虚拟化 | |
TPC-W | 2.0.0 | n/a | OLTP, 废弃,基于web的电子商务 |
3. TPC-H
3.1 TPC-H 介绍
TPC-H 是 TPC 针对 OLAP 数据库推出的,针对随机查询/商业智能处理能力的决策支持基准。它由一套面向业务的临时查询和并发数据修改组成。选择查询和存储到数据库的数据具有广泛的行业范围相关性,同时又保持了足够的易于实现的程度。
TPC- H 主要目的是评价特定数据库的查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能力。查询是决策支持应用的最主要应用之一,数据仓库中的复杂查询可以分成两种类型:一种是预先知道的查询,如定期的业务报表;另一种则是事先未知的查询,称为动态查询(Ad- Hoc Query)。
通俗的讲,TPC-H就是当一家数据库开发商开发了一个新的数据库操作系统,采用 TPC-H 作为测试基准,来测试衡量数据库操作系统查询决策支持方面的能力.
3.2 应用场景
TPC H由一组业务查询组成,这些业务查询旨在模拟复杂业务分析场景。这些查询具有现实的背景,并描绘了业务系统的活动,以帮助测试者直观地了解基准的组成部分。
TPC-H并不代表任何特定业务部门的活动,而是代表必一系列行业的业务员场景(例如,汽车租赁,食品分销,零件,供应商等)。TPC-H并非试图成为如何构建实际信息分析应用程序的模型。
此基准的目的是减少信息分析应用程序中发现的操作的多样性,同时保留该应用程序的基本性能特征,即:系统利用率水平和操作复杂性。为了完全管理业务分析环境,需要执行各种类型和复杂性的大量查询。由于查询运行的时间长短,查询使用的系统资源以及执行的频率,因此对于性能分析而言,许多查询并不是最重要的。选择的查询具有以下特征:
查询具有高度的复杂性
查询会使用各种不同的访问方式
大多数查询都是临时性的
查询时会检查大量可用数据
模拟查询系统,根据不同需求查询不同的数据
查询执行期间,相关参数可能会发生变化
尽管重点放在信息分析上,但基准测试认识到需要定期刷新数据库。该数据库不是业务运营数据库的一次性快照,也不是OLTP应用程序同时运行的数据库。但是,数据库必须能够在7天24小时(7 x 24)的基础上支持对所有表的查询和刷新功能。
虽然基准测试对其中刷新功能是数据维护必不可少的一部分的业务环境进行建模,但是基准测试中实际需要的刷新功能并未尝试对业务环境的这一方面进行建模。他们的目的是演示DBMS的更新功能,同时评估维护辅助数据结构(例如二级索引)的适当性能成本。
3.3 TPC-H的衡量指标
它模拟决策支持系统中的数据库操作,测试数据库系统复杂查询的响应时间,以每小时执行的查询数(TPC-H QphH@Siz)作为度量指标
3.4 数据库实体关系
共有8 张表
除Nation 和Region 表外,其它表与测试的数据量有关,即比例因SF(Scale Factor)
表名后括号中的的该表中列名的前缀
箭头方向表示与其他表的关系
3.5 表详细结构
3.5.1 PART
Column Name | Datatype Requirements | Comment |
---|---|---|
P_PARTKEY | identifier | PK,SF*200,000 are populated |
P_NAME | variable text, size 55 | |
P_MFGR | fixed text, size 25 | |
P_BRAND | fixed text, size 10 | |
P_TYPE | variable text, size 25 | |
P_SIZE | integer | |
P_CONTAINER | fixed text, size 10 | |
P_RETAILPRICE | decimal | |
P_COMMENT | variable text, size 23 |
3.5.2 SUPPLIER
Column Name | Datatype Requirements | Comment |
---|---|---|
S_SUPPKEY | identifier | PK,SF*10,000 are populated |
S_NAME | fixed text, size 25 | |
S_ADDRESS | variable text, size 40 | |
S_NATIONKEY | Identifier | Foreign Key to N_NATIONKEY |
S_PHONE | fixed text, size 15 | |
S_ACCTBAL | decimal | |
S_COMMENT | variable text, size 101 |
3.5.3 PARTSUPP
Column Name | Datatype Requirements | Comment |
---|---|---|
PS_PARTKEY | Identifier | PK,Foreign Key to P_PARTKEY |
PS_SUPPKEY | Identifier | PK,Foreign Key to S_SUPPKEY |
PS_AVAILQTY | integer | |
PS_SUPPLYCOST | Decimal | |
PS_COMMENT | variable text, size 199 | |
3.5.4 CUSTOMER
Column Name | Datatype Requirements | Comment |
---|---|---|
C_CUSTKEY | Identifier | PK,SF*150,000 are populated |
C_NAME | variable text, size 25 | |
C_ADDRESS | variable text, size 40 | |
C_NATIONKEY | Identifier | Foreign Key to N_NATIONKEY |
C_PHONE | fixed text, size 15 | |
C_ACCTBAL | Decimal | |
C_MKTSEGMENT | fixed text, size 10 | |
C_COMMENT | variable text, size 117 |
3.5.5 ORDERS
Column Name | Datatype Requirements | Comment |
---|---|---|
O_ORDERKEY | Identifier | PK,SF*1,500,000 are sparsely populated |
O_CUSTKEY | Identifier | Foreign Key to C_CUSTKEY |
O_ORDERSTATUS | fixed text, size 1 | |
O_TOTALPRICE | Decimal | |
O_ORDERDATE | Date | |
O_ORDERPRIORITY | fixed text, size 15 | |
O_CLERK | fixed text, size 15 | |
O_SHIPPRIORITY | Integer | |
O_COMMENT | variable text, size 79 |
注:订单表,只有约 三分之二的客户分配到订单,其余的三分之一客户是没有订单的,目的是为了在连接两个多个表时处理这些数据。
3.5.6 LINEITEM
Column Name | Datatype Requirements | Comment |
---|---|---|
L_ORDERKEY | identifier | PK, Foreign Key to O_ORDERKEY |
L_PARTKEY | identifier | Foreign key to P_PARTKEY, first part of the compound Foreign Key to (PS_PARTKEY, PS_SUPPKEY) with L_SUPPKEY |
L_SUPPKEY | identifier | Foreign key to S_SUPPKEY, second part of the compound Foreign Key to (PS_PARTKEY,PS_SUPPKEY) with L_PARTKEY |
L_LINENUMBER | integer | PK |
L_QUANTITY | decimal | |
L_EXTENDEDPRICE | decimal | |
L_DISCOUNT | decimal | |
L_TAX | decimal | |
L_RETURNFLAG | fixed text, size 1 | |
L_LINESTATUS | fixed text, size 1 | |
L_SHIPDATE | date | |
L_COMMITDATE | date | |
L_RECEIPTDATE | date | |
L_SHIPINSTRUCT | fixed text, size 25 | |
L_SHIPMODE | fixed text, size 10 | |
L_COMMENT | variable text size 44 |
3.5.7 NATION
Column Name | Datatype Requirements | Comment |
---|---|---|
N_NATIONKEY | identifier | PK, 25 nations are populated |
N_NAME | fixed text, size 25 | |
N_REGIONKEY | identifier | Foreign Key to R_REGIONKEY |
N_COMMENT | variable text, size 152 |
3.5. 8 REGION
Column Name | Datatype Requirements | Comment |
---|---|---|
R_REGIONKEY | identifier | PK, 5 regions are populated |
R_NAME | fixed text, size 25 | |
R_COMMENT | variable text, size 152 |