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) 組織制定的用來模擬決策支持類應用的一個測試集.目前,在學術界和工業界廣泛採用它來評價決策支持技術方面應用的性能. 這種商業測試能夠全方位評測系統的總體商業計算綜合能力,對廠商的要求更高,同時也具備廣泛的商業實用意義,目前在銀行信貸分析和信用卡分析、電信運營分析、稅收分析、菸草行業決策分析中都有普遍的應用。less
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。.net
suplier
供應商信息:key + 姓名、地址、電話、國家代碼
其中國家代碼須要和 nation 表作 join 以得到詳細國家信息。orm
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 以得到地區詳細信息blog
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