数据库基准测试标准 TPC-C or TPC-H or TPC-DS

针对数据库不同的使用场景TPC组织发布了多项测试标准。其中被业界广泛接受和使用的有TPC-C 、TPC-H和TPC-DS。

TPC-C:

Approved in July of 1992, TPC Benchmark C is an on-line transaction processing (OLTP) benchmark. 
TPC-C is more complex than previous OLTP benchmarks such as TPC-A because of its multiple transaction types,
 more complex database and overall execution structure. TPC-C involves a mix of five concurrent 
transactions of different types and complexity either executed on-line or queued for deferred execution. 
The database is comprised of nine types of tables with a wide range of record and population sizes. 
TPC-C is measured in transactions per minute (tpmC). While the benchmark portrays the activity of a 
wholesale supplier, TPC-C is not limited to the activity of any particular business segment, 
but, rather represents any industry that must manage, sell, or distribute a product or service.

TPC-C于1992年7月获得批准,是针对OLTP的基准测试。TPC-C相对于此前的OLTP基准测试标准如TPC-A更加复杂,

因为多事务类型、更复杂的数据库和整体执行的结构。TPC-C混合五种不同类型的比并发事务及其复杂性,要么在线

执行成功要么排队等候延迟执行。这个数据库由九种类型的表,这些表具有广泛的数据记录和数据大小。TPC-C通过每分钟

事务数来衡量。TPC-C 基准测试描述了批发供应商的活动,他不局限于特定的商业活动,而是代表了包含管理、销售、

分发产品或者服务的任何行业。

目前针对MySQL,Percona仍然提供TPC-C测试包。

http://repo.percona.com/release/7/RPMS/x86_64/sysbench-tpcc-1.0.15-2.el7.x86_64.rpm

TPC-H:

The TPC Benchmark™H (TPC-H) is a decision support benchmark. It consists of a suite of business oriented 
ad-hoc queries and concurrent data modifications. The queries and the data populating the database have been 
chosen to have broad industry-wide relevance. This benchmark illustrates decision support systems that examine 
large volumes of data, execute queries with a high degree of complexity, and give answers to critical business
questions. The performance metric reported by TPC-H is called the TPC-H Composite Query-per-Hour Performance 
Metric (QphH@Size), and reflects multiple aspects of the capability of the system to process queries. 
These aspects include the selected database size against which the queries are executed, the query processing 
power when queries are submitted by a single stream,and the query throughput when queries are submitted 
by multiple concurrent users. The TPC-H Price/Performance metric is expressed as $/QphH@Size.

TPC-H是决策支持的基准测试。它由一套面向业务的即席查询和并发数据修改组成。 这些查询和填充数据库的数据具有广泛的行业相关性。 该基准测试展示了决策支持系统,它可以检索大量数据,执行高度复杂的查询,并为关键业务问题提供答案。 TPC-H报告的性能指标称为TPC-H每小时综合查询性能指标(QphH @ Size),并反映了系统处理查询的能力的多方面。 这些方面包括执行查询所选的数据库大小,单个流提交查询时的查询处理能力,以及多个并发用户提交查询时的查询吞吐量。 TPC-H的价格/性能指标表示为$ / QphH @ Size。

TPC.org官方提供的有测试包。

TPC-H是一款面向商品零售业的决策支持系统测试基准,它定义了8张表,22个查询,遵循SQL92;TPC-H基准的数据库模式遵循第三范式。新兴的数据仓库开始采用新的模型,如星型模型、雪花模型。TPC-H已经不能精准反映当今数据库系统的真实性能。为此,TPC组织推出了新一代的面向决策应用的TPC-DS 基准。

TPC-DS:

The TPC Benchmark DS (TPC-DS) is a decision support benchmark that models several generally applicable 
aspects of a decision support system, including queries and data maintenance. The benchmark provides a 
representative evaluation of performance as a general purpose decision support system. A benchmark result 
measures query response time in single user mode, query throughput in multi user mode and data maintenance 
performance for a given hardware, operating system, and data processing system configuration under a controlled, 
complex, multi-user decision support workload. The purpose of TPC benchmarks is to provide relevant, objective 
performance data to industry users. TPC-DS Version 2 enables emerging technologies, such as Big Data 
systems, to execute the benchmark.

TPC-DS是决策支持的基本测试,提供了决策支持系统的通用见面方式,包括数据查询和数据维护。TPC-DS基准测试提供了

通用决策支持系统的性能评估。基准测试的结果衡量了单用户模式下的响应时间,多用户模式下的查询吞吐量,特定操作系统和硬件的数据维护性能,在受限复杂的环境下数据处理系统、支持多用户决策。TPC-DS基准测试为用户提供相关的 客观性能数据。TPC-DS v2则支持新兴技术如大数据 进行性能测试。

tpc.org 官方也提供规范和测试包。

TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。

TPC-DS的这个特点跟大数据的分析挖掘应用非常类似。Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。这个基准测试有以下几个主要特点:

一共99个测试案例,遵循SQL’99和SQL 2003的语法标准,SQL案例比较复杂
分析的数据量大,并且测试案例是在回答真实的商业问题
测试案例中包含各种业务模型(如分析报告型,迭代式的联机分析型,数据挖掘型等)
几乎所有的测试案例都有很高的IO负载和CPU计算需求

结论:

TPC-C是针对OLTP的测试,TPC-H和TPC-DS则是针对OLAP的测试,在新兴的HATP数据库兴起是则TPC-C、TPC-H和TPC-DS都需要进行测试测试验证,不过大部分数据库目前对TPC-DS的99个SQL查询支持尚不完善。

参考:

http://www.tpc.org/tpcc/default.asp

你可能感兴趣的:(数据库基准测试标准 TPC-C or TPC-H or TPC-DS)