TPC-TPCD

事务处理性能测试委员会TPC(Transaction process performance Council)是一个专门负责制定计算机事务处理能力测试标准并监督其执行的组织。

    80年代初,随着计算机技术的飞速发展出现了一种新的在线计算模式,与70年代占统治地位的批量计算模式不同,它采用相对单纯的方式直接通过在线数据库系统进行简单的事务处理,由此也宣告了OLTP事务处理模式(On-Line Transaction Process在线事务处理)的诞生。商业日常事务处理自动化的第一个应用程序是自动提款事务处理(Automated teller transaction—ATM)。在商业化社会,谁拥有最好的OLTP,谁就可以赢得更多的客户。但要证明谁是最好的,就需要建立一种广大客户能够普遍认可的测试标准。

    80年代中期,IBM提出了TP1(Transaction Process)测试标准,TP1主要是度量系统在批模式下处理ATM事务的性能。但TP1标准有两个缺陷:一是忽略网络和OLTP系统中用户交互部分的系统开销,因而可能产生不真实的性能报告;二是标准的定义太贫乏,并且无法监控标准测试的执行过程。因此,TP1的影响较小,只得到了少量的用户认可。

    1985年2月1日,Jim Gray与其他24位来自科学界和工业界的同仁发表了一篇名为《事务处理能力的度量(A Measure of Transaction Processing Power)》的文章。文中提出了一种在线事务处理能力测试方法,称为"借方信任"(DebitCredit)法。与TP1标准不同,Gray提出的标准是一种真正的系统级标准,其中包括了网络和用户交互的开销。DebitCredit标准发布前后,工业界的情况非常混乱,没有一个标准来监督测试的执行和结果发布。从1985年到1988年,一些厂商随意用TP1或DebitCredit进行测试,有些厂商甚至删掉DebitCredit标准中的一些关键要求以期改善他们的测试结果。

    直到1988年8月10日,作为ITOM(为中小企业提供IT技术支持的国际知名公司)创立者之一的Omri Serlin,成功说服8家公司成立了TPC,系统评测领域的混乱状况才开始出现了新的气象。TPC在1989年11月发布了其成立后的第一个标准,即TPC-A。TPC-A与DebitCredit的不同点主要在于:要求90%的事务处理应在2秒内完成;将每个测试系统需要的交互终端数降低到10台,而且规定终端的费用应包含在系统价格中。

    第一个TPC-A结果报告是在1990年7月发布的。4年后,TPC-A达到其顶峰——33家公司接受了TPC-A测试,115个不同的系统发布了TPC-A的测试结果。TPC-A澄清了混乱的市场,将上世纪80年代中期建立的TP1和DebitCredit模型法典化,形成了标准。但是,TPC的成员们很清楚,必须随着计算机技术的进步,不断提出更完善、更贴近现实应用的测试标准和模型。

    上世纪90年代初,TPC又发布了两个新的测试标准:用于替代TPC-A的OLTP测试新标准TPC-C和决策支持系统测试标准TPC-D。TPC-C公布于1992年7月,TPC-D公布于1994年4月。TPC-C和TPC-D在其各自的领域都获得了普遍的接受。1999年,TPC发布了决策支持系统测试新标准TPC-H,用以替代原有的TPC-D,从而进一步完善了其决策支持系统测试模型;2007年,TPC发布了OLTP测试新标准TPC-E,目的在于替代原有的TPC-C新的TPC-E测试标准更真实更准确的模拟了现有的OLTP模型,但由于TPC-C测试是一个较为成熟、被计算机厂商及用户广为接受的测试模型,所以替代过程不是一蹴而就,目前TPC-C标准仍被使用。2004年,TPC发布了应用服务器测试标注TPC-App。

    截至目前,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处理能力测试标准)。

 

 

 

 

 

NCR公司上海办事处 王闯舟
TPC-D是衡量OLAP (联机分析处理)系统或者说数据仓库系统性能的一个测试指标。
随着数据仓库技术在国内日益流行,TPC-D在国内的应用也将非常普及。《计算机世界》
1998年第10期软件版上曾简单介绍过TPC-D,本文将详细介绍 TPC-D的主要内容以及它对
实际系统的参考作用。
TPC-D的来源
数据仓库主要是用来进行决策支持的,近几年来,它在全世界各行各业的应用日益广
泛。为了使用户能更好地选择构筑数据仓库系统的软硬件平台,1995年,由 43个成员(包
括NCR、 SUN、 IBM等)组成的 TPC (交易处理委员会)组织公布了专门针对决策支持的T
PC-D测试标准。针对数据仓库应用的特点,TPC-D着重于测试整个系统对大量数据进行复
杂查询时的性能。
TPC-D测试的数据库结构
TPC组织对TPC-D测试的内容进行了详细的定义,包括如何定义表以及表的大小、 如
何往表中填充数据、查询的内容、系统文档等。完整的描述可以从TPC的 Web站点(http
://www.tpc.org)上下载,这里简单介绍一下它的主要内容。
TPC-D测试是基于 9个表进行的,这 9个表的定义及相互关系如下:
@@0361100.JPG;图1@@
图中各方框内上方为表名,下方表示每个表的记录个数,其中 SF (Scale Factor)对
应测试标准的级别,如对应100GB数据库的 SF=100,对应300GB数据库的SF=300,依次类推
。图中箭头方向表示的是一对多的关系,如Customer与 Order是一对多的关系,即一个客
户可以下多个订单。
TPC组织对表的各个域作了详细的定义,每个域均以表名的首写字母作为前缀,如P_P
artKey是表Part (零件)的一个主键属性。
为了保证测试结果的公正性,TPC组织提供了一个工具软件,用来生成这 9个表在不同
测试级别下的所有记录。
TPC-D测试的主要内容
TPC-D规范中明确指出, TPC-D是专门设计用来检验系统"基于大量数据","执行高度
复杂查询"的能力
所谓复杂查询,是指查询中包含有子查询、全表搜索、多表连接、复
杂聚合等,这些都是检验数据仓库系统性能的主要指标。
根据在决策支持中最有代表性的业务问题,并且考虑到数据仓库中查询的特点, TPC
-D规范中共规定了17个查询和2个数据库更新操作,根据它们的结果来计算所谓的TPC-D能
力 (Power)、流量 (Throughput)和性能价格比 (Price/Performance)这三个主要指标。
这些查询都具有以下特点:
*S高度复杂性;
*S多种信息访问模式;
*S具有动态查询的特征;
*S搜索和检验大量的数据;
*S各查询彼此互不相同;
*S查询中含有可以更改的参数,以便比较参数变化时的各种查询结果。
根据这些查询所返回的结果,可以为回答以下各种类型的业务问题提供决策支持所必
需的信息:
*S价格制定与市场促销;
*S供货与需求管理;
*S利润与营业额管理;
*S客户满意度调研;
*S市场占有率研究;
*S货运管理。
由于篇幅所限,本文只抽取17个查询中的3个进行分析,其它查询的详细说明可以从T
PC-D规范中得到。
查询2
查询2称为最低价供应商查询 (Minimum Cost Supplier Query),它针对的业务问题
是:在某一个指定区域 (如欧洲),找出能以最低价供应某种类型(如黄铜)和尺寸 (如15)
的零件的供应商,如果该区域存在多个满足条件的供应商,则选择前100个具有最高帐号余
额的供应商。由于篇幅所限,本文不再给出这些查询的列表。
这是一个非常复杂的查询,牵涉到5个表的内、外连接。如果把它应用到零售或者邮
购业,则表示业主如何以最好的价格来选择供货商。如果把它应用到电信业,则可用来收
集和分析竟争对手的信息,例如,对某个业务区域,找出以最低价格提供某种电信服务(如
国际长途电话)的竟争对手。
查询6
查询6称为营收变化预报查询 (Forecasting Revenue Change Query)。它针对的业
务问题是:考虑某年内 (如1994年)所有在某个折扣范围 (如6%±1%)内成交的商品,如果
对那些购买数量不超过指定范围(如不超过24个)的生意不予折扣优惠,那么利润将增加多
少?
这个查询没有表的连接,但LINEITEM是一个很大的表,该查询用来检验系统对大表进
行全表搜索的能力,这种能力对数据仓库应用的动态查询是非常重要的。因为固定的查询
可以通过预先调整数据库结构、设置相应的索引来改善表搜索的性能,但对于动态查询,
不可能事先设置索引。目前不少商用数据库厂商通过建立大量的索引来解决这个问题,负
作用是增加了系统管理员的负担,系统难于维护,数据库变得非常庞大而磁盘利用率却很
低。唯一的解决之道是提高数据库系统的并行处理能力,使之不需要依靠索引即可在合理
的时间内完成大表的全表搜索。对于OLTP系统,由于其查询都是预先定义的,依靠索引即
可获得满意的响应时间。举例来说,在一个银行的储蓄系统中一般都以帐号作为索引,因
为所有操作基本上都是基于帐号进行的。在这种OLTP系统中,数据库的大小对性能影响不
大,对并行处理能力的要求也不高。这是数据仓库系统与 OLTP系统的重要区别之一。
让我们再回到查询6,这个查询的实际应用场合很多。例如在航空业,各航空公司的竟
争非常激烈,如何确定最佳的折扣率,以吸引更多的客人特别是经常进行商务旅行的客人
?如果只是根据航班时刻给以固定的折扣,既不能够吸引常客,又因给散客的折扣过高而降
低利润。这个查询的结果可以为航空公司确定最佳折扣率提供非常有用的信息。同样,在
零售业、电信业、金融业等,都可以找到类似的应用。
查询9
查询9称为产品种类利润评测查询 (Product Type Profit Measure Query)。 它针
对的业务问题是:在每个国家,分析某种类型的产品(通过产品名中包含的特殊字符串如"
GREEN"来识别)在每年的利润情况。
处理大量数据的多表连接操作能较好地模拟数据仓库系统的满负载运行情况,根据目
前各厂商提供的测试结果,在所有17个查询中,查询9是耗时最长的。
这个查询的实际应用场合很多,比如在金融业,通过对大量详细历史数据的分析,可以
找出哪些客户对银行的利润贡献最大,哪些客户非但不使银行盈利反而使其亏损。对于前
者,银行可以向其提供更好的服务,推荐更多的金融产品,以维持客户的忠诚度;而对后者
,则应限制其使用范围,防止造成更大的损失。在零售业、电信业、航空业等多种行业,对
客户的利润分析一直都是非常重要的,也是许多企业使用数据仓库的主要出发点。

 

 


TPC-D测试的主要技术指标
TPC-D规定了三个指标来比较决策支持应用环境下数据库引擎的性能,它们分别是:
1.TPC-D查询处理能力 QppD(Query Processing Power D),其计算公式为:
QppD=3600* Size /GM(q1...q17,UF1,UF2)
该指标是在单用户状态下测试的。其中Size表示测试数据库的大小,如100GB、1000
GB等,注意这里指的是用户数据(User Data或 Raw Data)的大小而不是整个数据库的大小
;q1、q2、……q17分别表示每个查询运行的时间;UF1和UF2为两个数据库更新操作的时间
,单位均为秒。该指标实际上评估了数据库每小时运行查询的能力,因此,这个数据越大越
好。
2.TPC-D流量测试指标 QthD(Query Throughput D),计算公式为:
QthD= Streams*17*3600*Scale Factor/Throughput Interval
其中Streams表示系统中同时执行查询的并发用户数;Scale Factor是指测试数据库
的大小;Throughput Interval表示多个并发用户同时提交查询或数据库更新操作时的最
早起始时刻到最后一个结果返回时刻之间的时间,单位为秒。
这个指标也是越大越好,但需要注意的是,在多用户状态下进行流量测试时,其结果能
充分体现系统的并行处理能力,也更贴近实际应用情况。遗憾的是,一些商用数据库系统
主要是应用于OLTP系统的,对并行处理的要求不高,因此在进行多用户状态下的流量测试
时结果不理想。作为一个折衷办法,TPC组织允许流量测试在单用户状态下进行,即STREA
M数为1,此时在作 TPC-D查询处理能力测试时的结果即可用来计算流量指标。由于用一个
测试结果来计算两个测试指标,因此单用户状态下的流量测试结果意义不是很大,不能很
好地模拟实际情况。
3.TPC-D价格性能比 QphD (Query Price-Performance D),其计算公式为:
QphD= Total 5-year Price/平方根(QppD*QthD)
其中Total 5-year Price指5年内包括维护在内的系统总报价。一般来讲,这个值越
小越好。但由于这是美国报价,而且影响价格的因素很多,因此这个结果主要起参考作用

如何比较TPC-D的测试结果
当一个公司完成其数据库产品的TPC-D测试后,必须经过严格的审核后才能在TPC组织
的网址上发表测试结果。测试者需要提供两个文档,一是测试概要 (Executive Summary
),其中包括上面提到的三个测试指标,以及测试系统的详细配置、每个查询与数据库更新
操作的时间、流量测试的用户数等信息;第二个文档是详细报告 (Full Disclosure Rep
ort),它除了测试概要中的所有信息外,还包括数据库如何建立、索引、数据加载等详细
的说明,包括完整的源代码。TPC组织的网址上只提供测试概要,如果需要详细报告,必须
到相应供应商的网址上去下载。
对于刚开始选择数据仓库应用软硬件平台的企业, TPC组织提供的数据可以是一个比
较好的评估切入点。那么,怎样来评比 TPC-D的测试结果呢?下面给出几点参考意见。
1.首先当然是比较三个测试指标,即QppD、 QthD和 QphD。在同一个级别下,前两个
指标越大越好,最后一个指标越小越好。
2.三个测试指标应该相互结合,不能孤立比较。
3.注意观察系统的可扩展能力。根据一些评估组织的统计,数据仓库系统在投产后其
数据量的增长很快,因此,系统的可扩展能力是一个重要指标。可以从三个方面来研究系
统的可扩展能力:(1)在同样的软硬件配置下,当数据库成倍增长时,复杂查询的响应时间
将按比例增加;(2)在同一个级别 (如300GB)的TPC-D测试时,当数据库中并发用户数增加
时,复杂查询的响应时间将按比例增加;(3)在相同的负载情况下,当把硬件平台升级时,复
杂查询的响应时间将按比例缩短。
4.注意看流量测试是否在多用户状态下进行,多用户状态下的流量测试能充分检验系
统的并行处理能力,如流量控制机制、系统内部资源共享、优先级排序等。
5.注意比较磁盘的使用率,即系统中总的磁盘大小与用户数据的比率。一般这个数据
越大,说明测试系统越复杂,数据库管理也就越难。由于磁盘的使用率不高和难于管理,系
统投资也就很大。当然,比较磁盘使用率时要结合考虑系统中是否有数据保护机制,如有
的测试系统中使用RAID5,有的用镜像,有的则根本不加保护。
6.如果下载到测试的详细报告,则还可以研究测试系统中使用的索引数和构造查询的
复杂过程。索引越多,查询构造越复杂,说明系统根据TPC-D规定的查询作了大量优化和调
整。这种系统只适合于预先定义的业务问题,如一些固定的业务报表,而不能满足目前许
多企业业务部门的动态查询要求,无法适应不断变化的、竟争激烈的商业环境。另外,索
引过多也是导致磁盘利用率低下的主要原因之一。
小结
本文比较详细地介绍了TPC-D测试的主要内容和它所代表的一些实际业务问题,以及
在比较TPC--D测试指标时的一些注意事项。应该指出,TPC-D不是万能的,并不能涵盖数据
仓库应用中的所有问题。这一点在TPC-D规范中有非常清楚的说明。用户在选择软硬件平
台来实施数据仓库时,除了要综合考虑 TPC-D测试指标外,主要还应结合自已的实际应用
环境和要解决的业务问题,设计一个更有实际应用价值的测试标准来作为选型的基础。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值