TPC-C性能测试_第1页
TPC-C性能测试_第2页
TPC-C性能测试_第3页
TPC-C性能测试_第4页
TPC-C性能测试_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TPC-C性能测试1. 前言22. 逻辑数据库设计22.1业务和应用程序环境 22.2数据库实体、关系、属性 32.3表结构42.3.1 WAREHOUSE (仓库)42.3.2 DISTRICT (地区)52.3.3 CUSTOMER (客户)62.3.4 HISTROY (历史记录)72.3.5 NEW_ORDER (新定单)72.3.6 ORDER (定单)72.3.7 ORDER_LINE (定单分录) 82.3.8 ITEM (供货商品)82.3.9 STOCK (存货) 93. 业务和用户界面93.1输入域和显示域 93.2业务103.2.1 新定单(New-Order ) 103

2、.2.2 付款(Payment) 113.2.3 查询定单(Order-Status) 123.2.4 发货(Delivery ) 123.2.5 库存报警(Stock-Level ) 13前言事务处理性能协会(Transaction Processing Performance CounciI 简称 TPC)是 一个专门评价大型数据库系统硬、 软件性能的组织。至今(1998年12月),TPC 颁布了 A、B、C、D四种系统性能测试标准,简称为 TPC-A、TPC-B、TPC-C、 TPC-D。其中TPC-A与TPC-B为早期标准,最新标准 TPC-D仍在指定过程中, 目前普遍使用针对联机事务

3、处理(OLTP)的TPC-C标准。TPC Benchmark C是一套评价OLTP性能的测试程序,被全球主流计算机硬 件厂商、数据库厂商公认为性能评价标准。TPC-C测试程序模拟了一个库存、销 售系统,其中的数据库结构设计、应用程序规划代表了对RDBMS的标准用法。本文以 TPC 在 1998 年 8 月 14 日分布的 « TPC BENCHMARK C - Standard Specification Revision 3.4英文版(可以从 TPC 主贞 “” 下载)为 蓝本,选择翻译了其中逻辑设计部分,为提高可读性,多处进行了意译,并加入 了注解。由丁译者

4、水平有限,恐怕挂一漏万,如果能够对数据库应用程序员有一 点参考价值,也就达到目的了。2.逻辑数据库设计2.1 业务和应用程序环境TPC-C由一组基本操作组成,用以测试典型的复杂联机事务处理(OLTP)系统性能。TPC-C的模拟程序并不针对特定的商业对象,可以模拟含有管理、销售、分 发产品、服务的任何工业(例如:汽车出租,食物分配,零件供应等等)。TPC-C中虚拟的公司是一家仓库销售供应商,拥有一批分布在不同地方的仓 库和地区分公司。当公司业务扩大时,将建立新的仓库和地区分公司。 通常每个仓库供货覆盖10家地区分公司,每个地区分公司服务 3000名客户。公司共有 100,000种商品,分别储存在

5、各个仓库中。图表 1描述了仓库、地区分公司、客 户的隶届关系。图表1系统功能包括:客户向公司下订单,查询旧订单。订单平均由10行分录组成。订单中1%的商品当地仓库缺货,由其他仓库供货。同时还要处理付款、发货,和库存报警。2.2 数据库实体、关系、属性TPC-C数据库由9张独立的表组成。图表 2表小了表和表之|可的关系100K仓库'客户'W*30K' 库存1 +订单、.W*30K+图表2说明:数字表示数据库的容量需求实体块中的数字表示表的基数(行数)。这些数字以仓库数W为因数,决定数据库的缩放能力关系箭头上的数字表示关系的基数(父子对应平均数)在关系的基数和表的基数后的加

6、号表示随着行的增减,数值可能增长2.3 表结构表中出现的届性(attribute)定义:N unique IDs,不重复的代码,至少可以存储N个。不限制物理类型(例如: 二进制binary、压缩十进制packed decimal字符alphabetic等等)variable text, size N变长字符申,最大长度为 N。如果用定长字符申模拟, 则在字符申尾追加空格fixed text, size N 定长字符申,长度为 Ndate and time,日期时间,可以表示从 1990年1月1日至2100年12月31 日的日期,精度至少为1秒numeric, N digits数字型,可以表示N

7、位数字。当用丁存储货币时必须能 表示用户所在国货币定义。例如在美国,可以定义为(12, 2)有符号数字;也 可以定义为至少41比特(bits)的有符号整数;还可以定义为 64比特(bits)双 精度浮点数(REAL)null,表示无意义数值注释1:表中所有的届性可以以任意顺序创建,可以用目标系统支持的任意 物理数据类型实现注释2:表的名称和字段的名称只是用丁说明,实现时可以改为其他名称2.3.1 WAREHOUSE (仓库)字段名称字段定义注释W_ID2*W unique IDsW是仓库数目W_NAMEVariable text, size 10W_STREET_1variable text,

8、 size 20W_STREET_2variable text, size 20W_CITYvariable text, size 20W_STATEfixed text, size 2W_ZIPfixed text, size 9W_TAXnumeric, 4 digits销售税W_YTDnumeric, 12 digits本年余额(Year to date balance)Primary Key : W_ID2.3.2 DISTRICT (地区)字段名称 字段定义注 释D_ID20 unique IDs通常为10个D_W_ID2*W unique IDsD_NAMEvariable tex

9、t, size 10D_STREET_1variable text, size 20D_STREET_2variable text, size 20D_CITYvariable text, size 20D_STATEfixed text, size 2D_ZIPfixed text, size 9D_TAXnumeric, 4 digits销售税D_YTDnumeric, 12 digits本年余额(Year to datebalanceD_NEXT_O_ID10,000, 000 unique IDs下一张定单号Primary Key : (D_W_ID, D_ID)D_W_ID Fore

10、ign Key, references W_ID2.3.3 CUSTOMER (客户)字段名称字段定义注释C_ID96, 000 unique IDs通常为3, 000C_D_ID20 unique IDsC_W_ID2*W unique IDsC_FIRSTvariable text, size 16C_MIDDLEfixed text, size 2C_LASTvariable text, size 16C_STREET_1variable text, size 20C_STREET_2variable text, size 20C_CITYvariable text, size 20C_

11、STATEfixed text, size 2C_ZIPfixed text, size 9C_PHONEfixed text, size 16C_SINCEdate and time登记日期C_CREDITfixed text, size 2信用(GC”=good, BC”=bad)C_CREDIT_LIMnumeric, 12 digits透支限额C_DISCOUNTnumeric 4 digits折扣C_BALANCEsigned numeric, 12 digits欠款余额C_YTD _PAYMENTnumeric, 12 digits累计付款金额C_PAYMENT _CNTnumer

12、ic 4 digits累计付款次数C_DELIVERY _CNTnumeric, 4 digits累计发货次数C_DATAvariable text, size 500备注Primary Key : (C_W_ID, C_D_ID, C_ID)(C_W_ID, C_D_ID) Foreign Key, references (D_W_ID, D_ID)第9页,总13页2.3.4 HISTROY (历史记录)字段名称 字段定义注 释H_C_ID96,000 unique IDsH C D ID20 unique IDsH C W ID2*W unique IDsH_D_ID20 unique I

13、DsH_W_ID2*W unique IDsH_DATEdate and timeH _AMOUNTnumeric, 6 digits价格H_DATAvariable text, size 24Primary Key : None(H_C_W_ID, H_C_D_ID, H_C_ID) Foreign Key, references (C_W_ID, C_D_ID, C_ID)(H_WID, H_D_ID) Foreign Key, references(D_W_ID, D_ID)2.3.5 NEW_ORDER(新定单)字段名称字段定义注释NO_O_ID10,000, 000 unique I

14、DsNO_D_ID20 unique IDsNO W ID2*W unique IDsPrimary Key : (NO_W_ID, NO_D_ID, NO_O_ID)(NO_W_ID, NO_D_ID, NO_O_ID) Foreign Key, references (O_W_ID, O_D_ID, O_ID)2.3.6 ORDER (定单)字段名称 字段定义注 释O_ID10,000, 000 unique IDsO_D_ID20 unique IDsO W ID2*W unique IDsO_C_ID96, 000 unique IDsO_ENTRY_Ddate and time制单时

15、间O_CARRIER_ID10 unique IDs, or null货运代号O OL CNTfrom 5 to 15分录数O ALL LOCALnumeric, 1 digit是否全部本地供货Primary Key : (O_W_ID, O_D_ID, O_ID)(O_W_ID, O_D_ID, O_C_ID) Foreign Key, references (C_W_ID, C_D_ID,C_ID)2.3.7 ORDER_LINE (定单分录)字段名称字段定义OL_O_ID10, 000, 000 unique IDsOL_D_ID20 unique IDsOL_W_ID2*W uniqu

16、e IDsOL_NUMBER15 unique IDs分录代码OL_I_ID200, 000 unique IDs商品代码OL_SUPPLY_W_ID2*W unique IDs供货仓库代码OL_DELIVERY _Ddate and time or null发货时间OL_QUANTITYnumeric, 2 digits数量OL_AMOUNTnumeric, 6 digits价格OL DIST INFOfixed text, size 24Primary Key : (OL_W_ID, OL_D_ID, OL_O_ID, OL_NUMBER)(OL_W_ID, OL_D_ID, OL_O_I

17、D) Foreign Key, references (O_W_ID, O_D_ID, D_ID)(OL_SUPPLY_W_ID, OL_I_ID) Foreign Key, references ( S_W_ID, S_I_ID)2.3.8 ITEM (供货商品)I_ID200, 000 unique IDs通常是100, 000I_IM_ID200, 000 unique IDs商品图象代码I_NAMEI_PRICEnumeric, 5 digits价格I_DATAvariable text, size 50字段名称字段定义注释Primary Key : I_ID2.3.9 STOCK (

18、存货)字段名称 字段定义注 释S_I_ID200, 000 unique IDs通常是100, 000S W ID2*W unique IDsS_QUANTITYnumeric, 4 digits库存S_DIST_01fixed text, size 24S_DIST_01fixed text, size 24S_DIST_02fixed text, size 24S_DIST_03fixed text, size 24S_DIST_04fixed text, size 24S_DIST_05fixed text, size 24S_DIST_06fixed text, size 24S_DI

19、ST_07fixed text, size 24S_DIST_08fixed text, size 24S_DIST_09fixed text, size 24S_DIST_10fixed text, size 24S_YTDnumeric, 8 digits累计供货数量S_ORDER_CNTnumeric, 4 digits累计正单数重S_REMOTE_CNTnumeric, 4 digits累计其他仓库供货数量S_DATAvariable text, size 50备注Primary Key : (S_W_ID, S_I_ID)S_W_ID Foreign Key, references

20、W_IDS_I_ID Foreign Key, references I_ID3.业务和用户界面3.1输入域和显示域输入域只能输入合法字符。对丁字符输入域,未输入部分转换为空格或空。 对丁数字输入域,只能输入小丁限额的数字,并且右对齐。必须输入的输入域要在向数据库提交事务前检测,并当未输入时报错输入域可以以任意顺序输入和修改:用户可以在所有输入域中,向前或者向 后移动输入光标;不能指定用户输入顺序; 启动事务前,用户可以修改之前输入 的内容。数字输入域只能输入数字,如果输入了非数字则提示用户事务结束后,所有显示域应更新为新内容3.2 业务3.2.1 新定单(New-Order )在一个事务中输

21、入一张完整定单。它是中重量级的读写事务,发生频率高, 要求响应时间短。输入仓库代码(W_ID ),地区代码(D_W_ID , D_ID ),客户代码(C_W_ID , C_D_ID_, C_ID),分录数(OL_CNT),各分录对应的商品代码(OL_I_ID )、供货仓库代码(OL_SUPPLY_W_ID )、数量 (OL_QUANTITY )启动事务仓库(WAREHOUSE)中查询仓库代码(W_ID)。取税率(W_TAX ) 地区(DISTRICT )中查询地区代码(D_W_ID , D_ID )。取税率(D_TAX ); 取下一定单号(D_NEXT_O_ID )并且对其加一。客户(CUST

22、OMER)中查询客户代码(C_W_ID, C_D_ID, C_ID)。 取客户折扣率(C_DISCOUNT),姓(C_LAST),信用(C_CREDIT) 新定单(NEW_ORDER)与定单(ORDER)中插入定单信息。货运代码(O_CARRIER_ID)置空。如果定单中的商品均在本地仓库,贝UO_ALL_LOCAL 置 1,否则置 0。对每笔分录ITEM中查询商品代码(I_ID )。取价格(I_PRICE)、名称(I_NAME )、 备注(I_DATA);如果商品代码不存在,报错并回滚事务STOCK中查询商品代码(S_I_ID = OL_I_ID )与仓库代码(S_W_ID =OL_SUPP

23、LY_W_ID )。取库存(S_QUANTITY )、地区说明(S_DIST_xx, xx为地区代码)、备注(S_DATA);库存量减去商 品数量(S_QUANTITY = S_QUANTITY - OL_QUANTITY );累计 供货数量加上商品数量(S_YTD = S_YTD + OL_QUANTITY );累 计定单数量(S_ORDER_CNT)加一;如果分录中的商品在其他仓 库,则累计其他仓库供货数量加一(S_REMOTE_CNT) 计算价格(OL_AMOUNT = OL_QUANTITY * I_PRICE ) ORDER_LINE插入分录信息。供货时间(OL_DELIVERY_D

24、 )置空; 分录号(OL_NUMBER )赋值;地区信息(OL_DIST_INFO )赋值 为(S_DIST_xx)计算定单总价格SUM(OL_AMOUNT)*(1-C_DISCOUNT)*(1+W_TAX+D_TAX)提交事务第#页,总13页3.2.2 付款(Payment)在一个事务中更新客户余额、地区、仓库的销售数据。它是轻重量级的读写 事务,发生频率高,要求响应时间短。另外,此事务中有不按关键字访问 CUSTOMER的情况。输入仓库代码(W_ID ),地区代码(D_W_ID , D_ID ),客户代码(C_W_ID , C_D_ID , C_ID)或者客户姓氏(C_W_ID , C_D

25、_ID , C_LAST),支付 金额(H_AMOUNT )启动事务仓库(WAREHOUSE )中查询仓库代码(W_ID)。取名称(W_NAME ), 地址 1 (W_STREET_1),地址 2 (W_STREET_2),城市(W_CITY ), 州(W_STATE),邮政编码(W_ZIP),累计发生额(W_YTD)。累 计发生额加上支付金额(W_YTD = W_YTD + H_AMOUNT ) 地区(DISTRICT)中查询地区代码(D_W_ID , D_ID)。取名称(D_NAME ),地址 1 (D_STREET_1),地址 2 (D_STREET_2),城 市(D_CITY ),州(

26、D_STATE ),邮政编码(D_ZIP),累计发生额(D_YTD )。 累计发生额加上支付金额(D_YTD = D_YTD + H_AMOUNT )情况1由客户代码查找客户。CUSTOMER中查询客户代码(C_W_ID, C_D_ID, C_ID)。取姓名(C_FIRST, C_MIDDLE , C_LAST),地址 1 (C_STREET_1),地址 2 (C_STREET_2),城市(C_CITY),州(C_STATE),邮政编码(C_ZIP),电话(C_PHONE),登记日期 (C_SINCE),信用(C_CREDIT),超支限额(C_CREDIT_LMT ), 折扣(C_DISCOU

27、NT),欠款余额(C_BALANCE )。欠款余额减去支 付金额(C_BALANCE = C_BALANCE H_AMOUNT ),累计支付金额 加上支付金额(C_YTD_PAYMENT = C_YTD_PAYMENT + H_AMOUNT ),支付次数(C_PAYMENT_CNT )加一。情况2由客户姓氏查找客户。CUSTOMER中查询客户姓氏(C_W_ID , C_D_ID , C_LAST),查询时显示按客户名(C_FIRST)排序的列表由 用户选择。当用户选择某客户时,取姓名( C_FIRST, C_MIDDLE , C_LAST),地址 1 (C_STREET_1),地址 2 (C_

28、STREET_2),城市(C_CITY),州(C_STATE),由,政编码(C_ZIP),电话(C_PHONE), 起始日期(C_SINCE),信用(C_CREDIT),超支限额(C_CREDIT_LMT ), 折扣(C_DISCOUNT),欠款余额(C_BALANCE )。若客户列表有n 行,则平均查找客户信息n/2行。欠款余额减去支付金额(C_BALANCE =C_BALANCE H_AMOUNT ),累计支付金额加上支付金额(C_YTD_PAYMENT = C_YTD_PAYMENT + H_AMOUNT ),支付次 数(C_PAYMENT_CNT )加一。如果信用(C_CREDIT)为

29、“BC”,贝U客户备注(C_DATA)右移,左 端插入客户代码(C_W_ID , C_D_ID , C_ID)、地区代码(D_ID)、仓 库代码(W_ID)、支付金额(H_AMOUNT )历史记录备注(H_DATA )追加仓库名称(W_NAME)、地区名称 (D_NAME )提交事务3.2.3 查询定单(Order-Status)显示指定客户最近的定单状态。它是中重量级的只读事务,发生频率高。另 外,此事务中有不按关键字访问 CUSTOMER的情况。输入客户代码(C_W_ID , C_D_ID , C_ID)或客户姓氏(C_W_ID , C_D_ID , C_LAST)启动事务情况1由客户代码

30、查找客户。CUSTOMER中查询客户代码(C_W_ID, C_D_ID, C_ID)。取姓名(C_FIRST, C_MIDDLE , C_LAST),欠款 余额(C_BALANCE )。情况2由客户姓氏查找客户。CUSTOMER中查询客户姓氏(C_W_ID , C_D_ID , C_LAST),查询时显示按客户名(C_FIRST)排序的列表由 用户选择。当用户选择某客户时,取姓名( C_FIRST, C_MIDDLE , C_LAST),欠款余额(C_BALANCE )。若客户列表有n行,则平均取 客户信息n/2行。定单(ORDER)中查询仓库代码(O_W_ID = C_W_ID )、地区代码

31、 (O_D_ID = O_D_ID)、客户代码(O_C_ID = C_ID),并且定单代码 (O_ID)最大的行。取定单代码(O_ID),制单日期(O_ENTRY_D),货运代码(O_CARRIER_ID )定单分录(ORDER_LINE )中查询满足仓库代码(O_W_ID = OL_W_ID )、 地区代码(O_D_ID = OL_D_ID )、定单代码(O_ID = OL_O_ID )条件 的所有记录,并按定单分录代码(OL_I_ID )排序。取供应仓库代码(OL_SUPPLY_W_ID),数量(OL_QUANTITY ),金额 (OL_QUANTITY ),发货日期(OL_DELIVERY_D )提交事务3.2.4 发货(Delivery)以10笔新订单(NEW_ORDER,未发货订单)为一批处理,一张订单的处 理必须在一个读写型事务中完成。至丁一个数据库事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论