https://zhuanlan.zhihu.com/p/339886289

针对数据库不同的使用场景TPC组织发布了多项测试标准。

TPC-C:

TPC Benchmark C于1992年7月获得批准,是一个在线事务处理(OLTP)基准。 与TPC-A等以前的OLTP基准测试相比,TPC-C更复杂,因为它具有多种事务类型,更复杂的数据库和整体执行结构。 TPC-C涉及五个不同类型和复杂性的并发事务的混合,这些事务可以在线执行或排队等待延迟执行。 该数据库由九种类型的表组成,具有广泛的记录和人口规模。 TPC-C以每分钟事务数(tpmC)衡量。 虽然基准描述了批发供应商的活动,但TPC-C并不限于任何特定业务领域的活动,而是代表必须管理,销售或分销产品或服务的任何行业。

TPC-H:

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

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

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

TPC-DS

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

http://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查询支持尚不完善。

发布于 2020-12-27 15:52

[转帖]TPC-C 、TPC-H和TPC-DS区别的更多相关文章

  1. <string> 与<string.h>、<cstring>的区别

    <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年 ...

  2. hpp头文件与h头文件的区别

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...

  3. stdio.h及cstdio的区别

    2013-07-04 16:45:19 找了很多资料,没有说的很明白的,下面是老外的一篇文章,解释的比较清楚,后面给出翻译. Clarifying stdio.h versus cstdio 转自:h ...

  4. .C .h 和 .CCP的区别

    1.*.H:C语言规定使用一个变量或调用一个函数前必须声明,为了使用方便,经常把常用函数,例如Windows API的函数,MFC类写入头文件.h,这样每次需要引用时只要使用#include加入就可以 ...

  5. C/C++ - <string> 与<string.h>、<cstring>的区别

    <string.h><string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <string><string>是C ...

  6. strings.h 与 string.h 头文件的区别

    今天使用 man string 来查看 string 文件的使用的方法(毕竟里面的函数名字和传入参数和发挥参数的类型,如果一段时间不使用,会产生遗忘.) 偶然发现,string.h 的man page ...

  7. [转帖] IIS经典模式和集成模式的区别

    在 IIS 7.0 中,应用程序池有两种运行模式:集成模式和经典模式. https://blog.csdn.net/hongwei_23/article/details/44300923 这里面添加一 ...

  8. [转帖]localhost与127.0.0.1的区别

    localhost与127.0.0.1的区别 https://www.cnblogs.com/hqbhonker/p/3449975.html 前段时间用PG的时候总有问题 当时没有考虑 localh ...

  9. C++ .h 与 .hpp 的区别

    原文地址:http://blog.csdn.net/f_zyj/article/details/51735416 .hpp,本质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件, ...

  10. [转帖] select、poll、epoll之间的区别总结[整理] + 知乎大神解答 https://blog.csdn.net/qq546770908/article/details/53082870 不过图都裂了.

    select.poll.epoll之间的区别总结[整理] + 知乎大神解答 2016年11月08日 15:37:15 阅读数:2569 http://www.cnblogs.com/Anker/p/3 ...

随机推荐

  1. 基于WebRTC的局域网文件传输

    基于WebRTC的局域网文件传输 WebRTC(Web Real-Time Communications)是一项实时通讯技术,允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点P2P ...

  2. CentOS 7 NTP服务端和客户端详细配置

    参考: https://blog.csdn.net/ankang654321/article/details/103542015 ntp同步时间实验 服务端IP  192.168.1.101      ...

  3. super只能用在构造方法里面吗?

    super关键字并不仅限于在构造方法中使用.在Java中,super关键字有两个主要的用途: 在子类的构造方法中调用父类的构造方法.这是super的一个常见用法,通常是在子类的构造方法的第一行使用,用 ...

  4. [ERROR] Error executing Maven. [ERROR] 1 problem was encountered while building the effective settings

    原因: maven 的配置文件 setting.xml 有错. 比如在配置文件中多了一行: 导致配置文件的格式不正确.

  5. 智定义、易调整,火山引擎DataLeap助力企业轻松实现全流程值班管理

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   近日,火山引擎大数据研发治理套件DataLeap全新上线值班管理模块,企业可通过该模块体系化智能化创建值班计 ...

  6. Python 太难懂?火山引擎数智平台这款产品可以了解一下!

      更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 「自学 Python?一般人我还是劝你算了吧!」 在国内知识分享平台「知乎」上,这一吐槽话题获得了超过 260 ...

  7. 对话 BitSail Contributor | 吴畅:从好奇,到深入

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 2022 年 10 月,字节跳动 BitSail 数据引擎正式开源.同期,社区推出 Contributor 激励计 ...

  8. .NET Core 在其上下文中,该请求的地址无效。

    .NET Core 在其上下文中,该请求的地址无效. 看了端口,发现没被占用,后来发现是IP地址变了 改成正确的IP就可以了.

  9. 将MyBatis Mapper xml 放到 jar 包外面

    在不改程序的情况下,修改 sql 时,需要将 Mapper 中的 XML 文件 放到外面 mybatis:    mapper-locations: classpath:mapper/*.xml #J ...

  10. Linux 进程守护脚本

    一.进程守护脚本: while true; do server=`ps aux | grep stat-agent-1.0.0-SNAPSHOT.jar | grep -v grep` if [ ! ...