TPC现有的测试标准为:TPC-E、TPC-C、TPC-H、TPC-App。根据这4个测试基准,目前TPC主要包括的4个技术小组委员会:TPC-E 技术小组委员会、TPC-C 技术小组委员会、TPC-H技术小组委员会、TPC-App技术小组委员会。前期TPC使用过但目前已经停止使用的测试标准有:TPC-A、TPC-B(数据库处理能力测试标准)、TPC-D、TPC-R(决策支持系统测试标准,类TPC-H)、TPC-W(Web处理能力测试标准)。

TPC测试标准分类
联机在线事务处理系统(OLTP)测试标准:TPC-C、TPC-E(最新)
决策支持/大数据(DS)测试标准:TPC-H、TPC-DS(最新)
服务器虚拟化(VMS)测试标准:TPC-VMS
OLTP测试标准
由于数据库的应用一般有两种,一种是OLTP,即在线联机事务处理,另一种是数据挖掘。就目前来说,OLTP仍然是主流应用。所以从一定程度来说,TPC-C和TPC-E的结果对于数据库系统采购都有一定的参考价值,比如银行、证券、税务报税系统、电子商务网站、电信业务等都是比较典型的OLTP应用。

TPC-H
TPC-H(商业智能计算测试) 是美国交易处理效能委员会(TPC,Transaction Processing Performance Council) 组织制定的用来模拟决策支持类应用的一个测试集.目前,在学术界和工业界普遍采用它来评价决策支持技术方面应用的性能. 这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用。

TPC-H 基准测试是由 TPC-D(由 TPC 组织于 1994 年指定的标准,用于决策支持系统方面的测试基准)发展而来的.TPC-H 用 3NF 实现了一个数据仓库,共包含 8 个基本关系,其数据量可以设定从 1G~3T 不等。TPC-H 基准测试包括 22 个查询(Q1~Q22),其主要评价指标是各个查询的响应时间,即从提交查询到结果返回所需时间.TPC-H 基准测试的度量单位是每小时执行的查询数( QphH@size),其中 H 表示每小时系统执行复杂查询的平均次数,size 表示数据库规模的大小,它能够反映出系统在处理查询时的能力.TPC-H 是根据真实的生产运行环境来建模的,这使得它可以评估一些其他测试所不能评估的关键性能参数.总而言之,TPC 组织颁布的TPC-H 标准满足了数据仓库领域的测试需求,并且促使各个厂商以及研究机构将该项技术推向极限。

---------------------
https://blog.csdn.net/xfg0218/article/details/82785187

TPC-H 基准测试是由 TPC-D(由 TPC 组织于 1994 年指定的标准,用于决策支持系统方面的测试基准)发展而来的.TPC-H 用 3NF 实现了一个数据仓库,共包含 8 个基本关系,其数据量可以设定从 1G~3T 不等。TPC-H 基准测试包括 22 个查询(Q1~Q22),其主要评价指标是各个查询的响应时间,即从提交查询到结果返回所需时间.TPC-H 基准测试的度量单位是每小时执行的查询数( QphH@size),其中 H 表示每小时系统执行复杂查询的平均次数,size 表示数据库规模的大小,它能够反映出系统在处理查询时的能力.TPC-H 是根据真实的生产运行环境来建模的,这使得它可以评估一些其他测试所不能评估的关键性能参数.总而言之,TPC 组织颁布的TPC-H 标准满足了数据仓库领域的测试需求,并且促使各个厂商以及研究机构将该项技术推向极限。

(*)详细介绍:https://blog.csdn.net/woshisap/article/details/44427899
---------------------

TPCH 里的表格对一个配件销售管理系统进行建模。细节参考 TPCH Specification
TPCH 的 Query 定义参考 Specification 的 2.4 节,里面详细说明了每个 Query 的内涵。本文过一遍表定义,记住这些表的意思,有利于理解 Query。

suplier
供应商信息:key + 姓名、地址、电话、国家代码
其中国家代码需要和 nation 表做 join 以获得详细国家信息。

CREATE TABLE `supplier` (
`s_suppkey` bigint(20) NOT NULL,
`s_name` char(25) DEFAULT NULL,
`s_address` varchar(40) DEFAULT NULL,
`s_nationkey` bigint(20) DEFAULT NULL,
`s_phone` char(15) DEFAULT NULL,
`s_acctbal` bigint(20) DEFAULT NULL,
`s_comment` varchar(101) DEFAULT NULL,
PRIMARY KEY (`s_suppkey`)
) partition by hash(s_suppkey) partitions 128
1
nation
国家信息:key + 国家名、地区代号
其中地区代号需要和 region 表做 join 以获得地区详细信息

CREATE TABLE `nation` (
`n_nationkey` bigint(20) NOT NULL,
`n_name` char(25) DEFAULT NULL,
`n_regionkey` bigint(20) DEFAULT NULL,
`n_comment` varchar(152) DEFAULT NULL,
PRIMARY KEY (`n_nationkey`)
)
region
地区信息:key + 地区名

CREATE TABLE `region` (
`r_regionkey` bigint(20) NOT NULL,
`r_name` char(25) DEFAULT NULL,
`r_comment` varchar(152) DEFAULT NULL,
PRIMARY KEY (`r_regionkey`)
)

customer
用户表:key + 姓名、地址、国家代号、电话等
用户表按照 key 做 64 个 hash 分区

CREATE TABLE `customer` (
`c_custkey` bigint(20) NOT NULL,
`c_name` varchar(25) DEFAULT NULL,
`c_address` varchar(40) DEFAULT NULL,
`c_nationkey` bigint(20) DEFAULT NULL,
`c_phone` char(15) DEFAULT NULL,
`c_acctbal` decimal(10,2) DEFAULT NULL,
`c_mktsegment` char(10) DEFAULT NULL,
`c_comment` varchar(117) DEFAULT NULL,
PRIMARY KEY (`c_custkey`),
UNIQUE KEY `i_c_custkey` (`c_custkey`) LOCAL BLOCK_SIZE 16384
) partition by hash(c_custkey) partitions 64
part
配件表:key + 配件名、厂商、品牌、类型、大小、包装、零售价

CREATE TABLE `part` (
`p_partkey` bigint(20) NOT NULL,
`p_name` varchar(55) DEFAULT NULL,
`p_mfgr` char(25) DEFAULT NULL,
`p_brand` char(10) DEFAULT NULL,
`p_type` varchar(25) DEFAULT NULL,
`p_size` bigint(20) DEFAULT NULL,
`p_container` char(10) DEFAULT NULL,
`p_retailprice` decimal(10,2) DEFAULT NULL,
`p_comment` varchar(23) DEFAULT NULL,
PRIMARY KEY (`p_partkey`)
) partition by hash(p_partkey) partitions 64;

partsupp
配件供应表:配件key + 供应商key + 供应数量、批发价

CREATE TABLE `partsupp` (
`ps_partkey` bigint(20) NOT NULL,
`ps_suppkey` bigint(20) NOT NULL,
`ps_availqty` bigint(20) DEFAULT NULL,
`ps_supplycost` decimal(10,2) DEFAULT NULL,
`ps_comment` varchar(199) DEFAULT NULL,
PRIMARY KEY (`ps_partkey`, `ps_suppkey`),
UNIQUE KEY `ps_pkey_skey` (`ps_partkey`, `ps_suppkey`) LOCAL BLOCK_SIZE 16384
) partition by hash(ps_partkey) partitions 64

orders
零售订单表:订单key + 客户key + 订单状态、订单总价、下单日期、优先级、收银员、发货优先级

CREATE TABLE `orders` (
`o_orderkey` bigint(20) NOT NULL,
`o_custkey` bigint(20) NOT NULL,
`o_orderstatus` char(1) DEFAULT NULL,
`o_totalprice` decimal(10,2) DEFAULT NULL,
`o_orderdate` date NOT NULL,
`o_orderpriority` char(15) DEFAULT NULL,
`o_clerk` char(15) DEFAULT NULL,
`o_shippriority` bigint(20) DEFAULT NULL,
`o_comment` varchar(79) DEFAULT NULL,
PRIMARY KEY (`o_orderkey`, `o_orderdate`, `o_custkey`),
KEY `o_orderkey` (`o_orderkey`) LOCAL BLOCK_SIZE 16384
) partition by range columns(o_orderdate)
subpartition by hash(o_custkey) subpartitions 64
(partition ord1 values less than ('1992-01-01'),
partition ord2 values less than ('1992-02-01'),
partition ord3 values less than ('1992-03-01'),
...
...
partition ord77 values less than ('1998-05-01'),
partition ord78 values less than ('1998-06-01'),
partition ord79 values less than ('1998-07-01'),
partition ord80 values less than ('1998-08-01'),
partition ord81 values less than (MAXVALUE))

lineitem
订单明细表:订单key + 配件key + 供应商key + 流水号、数量、价格、折扣、税、明细状态、发货日期、预计到达日期、实际到达日期、运单处理策略(原返?拒收退回?等)、运输途径(火车、汽运、邮寄等)

CREATE TABLE `lineitem` (
`l_orderkey` bigint(20) NOT NULL,
`l_partkey` bigint(20) NOT NULL,
`l_suppkey` bigint(20) NOT NULL,
`l_linenumber` bigint(20) NOT NULL,
`l_quantity` bigint(20) NOT NULL,
`l_extendedprice` decimal(10,2) NOT NULL,
`l_discount` decimal(10,2) NOT NULL,
`l_tax` decimal(10,2) NOT NULL,
`l_returnflag` char(1) DEFAULT NULL,
`l_linestatus` char(1) DEFAULT NULL,
`l_shipdate` date NOT NULL,
`l_commitdate` date DEFAULT NULL,
`l_receiptdate` date DEFAULT NULL,
`l_shipinstruct` char(25) DEFAULT NULL,
`l_shipmode` char(10) DEFAULT NULL,
`l_comment` varchar(44) DEFAULT NULL,
PRIMARY KEY (`l_orderkey`, `l_linenumber`, `l_shipdate`, `l_partkey`),
KEY `i_l_orderkey` (`l_orderkey`) LOCAL BLOCK_SIZE 16384
) partition by range columns(l_shipdate)
subpartition by hash(l_partkey) subpartitions 64
(partition item1 values less than ('1992-01-01'),
partition item2 values less than ('1992-02-01'),
partition item3 values less than ('1992-03-01'),
partition item4 values less than ('1992-04-01'),
...
...
partition item81 values less than ('1998-09-01'),
partition item82 values less than ('1998-10-01'),
partition item83 values less than ('1998-11-01'),
partition item84 values less than (MAXVALUE))
1
总体上看,围绕销售数据可以做各种进销存查询,围绕客户数据,可以做各种销售分析。更多 BI 相关内容,参考 http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_v2.17.3.pdf

---------------------
作者:maray
来源:CSDN
原文:https://blog.csdn.net/maray/article/details/80450990
版权声明:本文为博主原创文章,转载请附上博文链接!

TPCH测试工具的更多相关文章

  1. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  2. linux压力测试工具stress

    最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...

  3. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  4. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  5. HTTP压力测试工具

    HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...

  6. 微软压力测试工具 web application stress

    转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba  铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...

  7. WebService如何调试及测试工具

    http://www.cnblogs.com/zfanlong1314/archive/2012/04/06/2434788.html 通常,我们在Visual Studio里调试ASP.NET网站, ...

  8. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  9. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

随机推荐

  1. Thymeleaf整合到Spring Security,标签sec不起作用

    将 pom 文件中的 thymeleaf-extras-springsecurity4 依赖改成  thymeleaf-extras-springsecurity5 <dependency> ...

  2. RT-Thread--内核基础

    内核介绍 内核处于硬件层之上,内核部分包括内核库.实时内核实现. 实时内核的实现包括:对象管理.线程管理及调度器.线程间通信管理.时钟管理及内存管理等等,内核最小的资源占用情况是 3KB ROM,1. ...

  3. HDU - 6242 Geometry Problem (几何,思维,随机)

    Geometry Problem HDU - 6242 Alice is interesting in computation geometry problem recently. She found ...

  4. 14、RALM: 实时 look-alike 算法在推荐系统中的应用

    转载:https://zhuanlan.zhihu.com/p/71951411 RALM: 实时 look-alike 算法在推荐系统中的应用 0. 导语 本论文题为<Real-time At ...

  5. c++初步认识

    经过漫长的C学习终于踏入C++的知识库当中了,还是保持以前的习惯会一步步通过写博客的形式来记录点滴学习记录,这种学习方式是相当慢的,但是对我来说是最踏实的,不浮躁,一步一个脚印.C++是一门啥语言呢, ...

  6. 解压gz文件有误

    tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure st ...

  7. BackGroundWorker组件使用、Winform控件的Invoke安全调用

    BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作. 可以通过编程方式创建 BackgroundWorker,也可以将它从"工具 ...

  8. 优雅的退出和调用服务器close() 方法

    在开发中,创建这种“友好的”退出方式的一种方法就是,将服务器的 while 循环放在一个 try-except 语句中的 except 子句中,并监控 EOFError 或 KeyboardInter ...

  9. EF 多表联查方法

    两个表的linq         private DataContext dc; dc = new DataContext(); var heji = (from da in dc.q1        ...

  10. BZOJ 4013/Luogu P3240 [HNOI2015] 实验比较 (树形DP)

    题目传送门 分析 放一个dalao博客: xyz32768 的博客,看完再回来看本蒟蒻的口胡吧(其实嘛-不回来也行) 精髓是合并的方案数的计算,至于为什么是Ci−1j−1\large C_{i-1}^ ...