TPC-C性能测试
前言
事务处理性能协会(Transaction Processing Performance Council,简称TPC)是一个专门评价大型数据库系统硬、软件性能的组织。至今(1998年12月),TPC颁布了A、B、C、D四种系统性能测试标准,简称为TPC-A、TPC-B、TPC-C、TPC-D。其中TPC-A与TPC-B为早期标准,最新标准TPC-D仍在指定过程中,目前普遍使用针对联机事务处理(OLTP)的TPC-C标准。
TPC Benchmark C是一套评价OLTP性能的测试程序,被全球主流计算机硬件厂商、数据库厂商公认为性能评价标准。TPC-C测试程序模拟了一个库存、销售系统,其中的数据库结构设计、应用程序规划代表了对RDBMS的标准用法。
本文以TPC在1998年8月14日分布的《TPC BENCHMARK C - Standard Specification Revision 3.4》英文版(可以从TPC主页“”下载)为蓝本,选择翻译了其中逻辑设计部分,为提高可读性,多处进行了意译,并加入了注解。由于译者水平有限,恐怕挂一漏万,如果能够对数据库应用程序员有一点参考价值,也就达到目的了。
2.    逻辑数据库设计
2.1    业务和应用程序环境
TPC-C由一组基本操作组成,用以测试典型的复杂联机事务处理(OLTP)系统性能。
TPC-C的模拟程序并不针对特定的商业对象,可以模拟含有管理、销售、分发产品、服务的任何工业(例如:汽车出租,食物分配,零件供应等等)。
TPC-C中虚拟的公司是一家仓库销售供应商,拥有一批分布在不同地方的仓库和地区分公司。当公司业务扩大时,将建立新的仓库和地区分公司。通常每个仓库供货覆盖10家地区分公司,每个地区分公司服务3000名客户。公司共有100,000种商品,分别储存在各个仓库中。图表 1描述了仓库、地区分公司、客户的隶属关系。
图表 1
系统功能包括:客户向公司下订单,查询旧订单。订单平均由10行分录组成。订单中1%的商品当地仓库缺货,由其他仓库供货。
同时还要处理付款、发货,和库存报警。
2.2    数据库实体、关系、属性
TPC-C数据库由9张独立的表组成。图表 2表示了表和表之间的关系。
图表 2
说明:
数字表示数据库的容量需求
实体块中的数字表示表的基数(行数)。这些数字以仓库数W为因数,决定数据库的缩放能力
关系箭头上的数字表示关系的基数(父子对应平均数)
在关系的基数和表的基数后的加号表示随着行的增减,数值可能增长
2.3    表结构
表中出现的属性(attribute)定义:
N unique IDs,不重复的代码,至少可以存储N个。不限制物理类型(例如:二进制binary、压缩十进制packed decimal、字符alphabetic等等)
variable text, size N,变长字符串,最大长度为N。如果用定长字符串模拟,则在字符串尾追加空格
fixed text, size N,定长字符串,长度为N
date and time日期时间,可以表示从1990年1月1日至2100年12月31日的日期,精度至少为1秒
numeric, N digits,数字型,可以表示N位数字。当用于存储货币时必须能表示用户所在国货币定义。例如在美国,可以定义为(12,2)有符号数字;也可以定义为至少41比特(bits)的有符号整数;还可以定义为64比特(bits)双精度浮点数(REAL)
null,表示无意义数值
注释1:表中所有的属性可以以任意顺序创建,可以用目标系统支持的任意物理数据类型实现
注释2:表的名称和字段的名称只是用于说明,实现时可以改为其他名称
2.3.1    WAREHOUSE(仓库)
字 段 名 称
字  段  定  义
注      释
W_ID
2*W unique IDs
W是仓库数目
W_NAME
Variable text, size 10
W_STREET_1
variable text, size 20
W_STREET_2
variable text, size 20
W_CITY
variable text, size 20
W_STATE
fixed text, size 2
W_ZIP
fixed text, size 9
W_TAX
numeric, 4 digits
销售税
W_YTD
numeric, 12 digits
本年余额(Year to date balance)
Primary Key : W_ID
2.3.2    DISTRICT(地区)
字 段 名 称
字  段  定  义
注      释
D_ID
20 unique IDs
通常为10
D_W_ID
2*W unique IDs
D_NAME
variable text, size 10
D_STREET_1foreign key references用法
variable text, size 20
D_STREET_2
variable text, size 20
D_CITY
variable text, size 20
D_STATE
fixed text, size 2
D_ZIP
fixed text, size 9
D_TAX
numeric, 4 digits
销售税
D_YTD
numeric, 12 digits
本年余额(Year to date balance)
D_NEXT_O_ID
10,000,000 unique IDs
下一张定单号
Primary Key : (D_W_ID, D_ID)
D_W_ID Foreign Key, references W_ID
2.3.3    CUSTOMER(客户)
字 段 名 称
字  段  定  义
注      释
C_ID
96,000 unique IDs
通常为3,000
C_D_ID
20 unique IDs
C_W_ID
2*W unique IDs
C_FIRST
variable text, size 16
C_MIDDLE
fixed text, size 2
C_LAST
variable text, size 16
C_STREET_1
variable text, size 20
C_STREET_2
variable text, size 20
C_CITY
variable text, size 20
C_STATE
fixed text, size 2
C_ZIP
fixed text, size 9
C_PHONE
fixed text, size 16
C_SINCE
date and time
登记日期
C_CREDIT
fixed text, size 2
信用(GC”=good, BC”=bad
C_CREDIT_LIM
numeric, 12 digits
透支限额
C_DISCOUNT
numeric, 4 digits
折扣
C_BALANCE
signed numeric, 12 digits
欠款余额
C_YTD_PAYMENT
numeric, 12 digits
累计付款金额
C_PAYMENT_CNT
numeric, 4 digits
累计付款次数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。