1.测试目的

针对相同的硬件环境和计算任务,对比Oracle和集算器的性能差异,为客户选型提供参考。

2.硬件环境

设备数量:1台

CPU:16核Intel(R) Xeon(R) CPU E5620  @ 2.40GHz

内存:20G

3.软件环境

操作系统:CentOS6.4 64位

JDK:1.6 64位

4.测试对象

Oracle:11g(64位),本文中简称为Oracle。

集算器:v3.1。集算器按照数据存储方式的不同分为“文本文件、行式二进制文件(不分段文件)、行式二进制(分段文件)和列式二进制文件”四种不同测试对象,本文中简称为集算器文本、集算器行存、集算器行存分段、集算器列存。

5.方案说明

对比的相同点:

1、Oracle和集算器运行于相同的硬件和操作系统之上,执行任务的时候没有其他负载的干扰。

2、执行的任务输入数据、算法和输出数据均相同。

3、对外提供调用接口相同,都是JDBC调用,返回结果集。

对比的不同点:

1、存储方式不同,Oracle是内部存储数据,对外表现为数据表;集算器是利用操作系统存储数据,表现为操作系统本地文件,具体的又有文本文件、行式二进制文件和列式二进制文件三种。

2、算法实现的方式不同,Oracle是以sql的方式来实现算法的;集算器是以网格程序脚本来实现算法。

6.分组汇总

6.1.算法说明

输入:采用一个宽表A和一个窄表B来作为输入。A表有100个字段,6900万行记录,占用硬盘空间80G。B表有10个字段,11亿行记录,占用硬盘空间80G。

计算:针对表每张表中的1到4个字符串类型的字段(g1、g2、g3、g4)做分组,对1到4个数值型的字段(n1、n2、n3、n4)做汇总sum计算。

输出:由g1、g2、g3、g4和sum(n1)、sum(n2)、sum(n3)、sum(n4)组成的结果表C。

说明:A表字段多,所以采用集算器列存二进制文件的方式是有意义的。B表字段较少,因此不采用集算器二进制列存的方式,仅对比Oracle、集算器文本和集算器行存(二进制)三个测试对象。

6.2.Oracle sql示例

A表查询sql(4个分组字段4个汇总字段)

Select g1,g2,g3,g4,sum(n1),sum(n2),sum(n3),sum(n4) from A group by g1,g2,g3,g4

B表查询sql(4个分组字段4个汇总字段)

Select g1,g2,g3,g4,sum(n1),sum(n2),sum(n3),sum(n4) from B group by g1,g2,g3,g4

6.3.集算器 脚本示例

主程序(1个分组字段一个汇总字段部分)

子程序groupsub.dfx

子程序groupsubb.dfx

子程序groupsubc.dfx

6.4.测试结果及分析

6.4.1A表(宽表)并行数为1(无并行)

统计计算所用时间,单位:秒。

算法

Oracle

集算器(文本)

集算器(行存)

集算器(列存)

结果行数

1分组1汇总

232

402

295

42

34

1分组4汇总

248

435

296

62

34

4分组1汇总

263

461

290

101

1464

4分组4汇总

285

502

313

121

1464

分析:

1、由于列式存储对性能提高明显,所以集算器列存计算时间最短性能最高;Oracle因为是行式存储所以性能次之;因为是单进程没有并发的情况,所以集算器行存和集算器文本性能较低,两者之中集算器行存是二进制所以比集算器文本要快。

2、在每个测试对象内部对比,一般来说算法越复杂计算时间越长,因此1分组1汇总计算最快,4分组4汇总最慢。

6.4.2.A表(宽表)并行数为4

统计计算所用时间,单位:秒。

算法

Oracle

集算器(文本)

集算器(行存)

集算器(列存)

结果行数

1分组1汇总

259

274

295

43

34

1分组4汇总

272

275

297

56

34

4分组1汇总

286

264

315

99

1464

4分组4汇总

294

265

314

113

1464

结果分析:列式存储对性能提高的作用较大。

6.4.3 B表(窄表)并行数为1(无并行)

统计计算所用时间,单位:秒。

算法

Oracle

集算器(文本)

集算器(行存)

集算器(行存分段)

1分组1汇总

456

630

538

296

1分组4汇总

637

933

694

446

4分组1汇总

1139

1170

888

714

4分组4汇总

1246

1537

1080

936

6.4.4 B表(窄表)并行数为4

统计计算所用时间,单位:秒。

算法

Oracle

集算器(文本)

集算器(行存)

集算器(行存分段)

1分组1汇总

482

175

383

155

1分组4汇总

664

258

478

155

4分组1汇总

965

314

650

197

4分组4汇总

974

393

729

235

6.4.5 B表(窄表)并行数为8

统计计算所用时间,单位:秒。

算法

Oracle

集算器(文本)

集算器(行存)

集算器(行存分段)

1分组1汇总

486

183

436

159

1分组4汇总

675

161

537

176

4分组1汇总

976

191

681

162

4分组4汇总

968

220

761

169

6.5.进一步的对比分析

6.5.1并发数量对A表(宽表)计算性能的影响

这里以A表(宽表)的4分组4汇总的测试数据来横向对比一下,不同并发数量对计算性能的影响。

并行数

Oracle

集算器(文本)

集算器(行存)

集算器(列存)

结果行数

1并行

285

502

313

121

1464

4并行

294

265

314

113

1464

分析:并行计算对集算器文本性能提高明显,其他测试对象不明显。原因在于集算器文本是分段多游标读取数据的,集算器行存和列存都是单个二进制文件,无法多游标分段读取。如果事先将文件分段保存成多个,就可以用分段多游标读取可以提升速度。Oracle并行速度提高不明显的原因应该是内部机制造成。

6.5.2 并发数量对B表(窄表)计算性能的影响

这里以B表(窄表)的4分组4汇总的测试数据来横向对比一下,不同并发数量对计算性能的影响。

并行数

Oracle

集算器(文本)

集算器(行存)

集算器(行存分段)

1并行

1246

1537

1080

936

4并行

974

393

729

235

8并行

968

220

761

169

结果分析:并行计算对集算器行存分段和集算器文本性能提高明显,其他测试对象不明显。原因在于集算器行存分段和集算器文本是分段多游标读取数据的,集算器行存是单个二进制文件,无法多游标分段读取。集算器行存分段是事先将文件分段保存成多个,就可以用分段多游标读取可以提升速度。Oracle并行速度提高不明显的原因应该是内部机制造成。

oracle测试报告模板,Oracle与集算器对照测试报告相关推荐

  1. oracle 批量更新_用集算器更新数据库的技巧

    对数据库进行批量更新时,使用update函数要比execute函数性能更好. 比如,source和target是两个不同的数据源,callrecordA是source中的物理表,有1万条记录,call ...

  2. java跨库join方案_集算器协助java处理多样性数据源之跨库关联

    Java的数据计算类库RowSet提供了JoinRowSet和FilteredRowSet类,可以进行跨库的关联计算,但是有很多局限.首先,JoinRowSet只支持inner join,不支持out ...

  3. 集算器协助SQL实现非等值分组

    SQL通常只能按源表字段进行分组,如果分组依据来自另一张表.外部参数.条件列表,用SQL就很繁琐.有时分组依据需要动态生成,这些往往要借助高级语言实现.有时分组依据和源表不完全对应(或区间没有交集), ...

  4. 10 行代码,集算器实现写诗机器人

    集算器不仅有大数据计算,还有诗和远方.最近看到不少写诗机器人的新闻,于是尝试用集算器简单地实现一个.这个实现真的很简单,简单到只有10几行代码,请看实现步骤: 1.下载字典和诗词 从网上找一个用于分词 ...

  5. 润乾集算器与帆软报表集成 (直接通过 jdbc,类 DB 存储过程方式调用)

    集算器概述 集算器作为一种大数据计算工具,不仅在润乾产品体系中能发挥它的巨大作用,在其他绝大部分数据处理.数据计算领域的项目.产品中,也都有他助力计算的身影.比如传统的报表工具,报表项目中,80% 的 ...

  6. 10 行代码集算器实现写诗机器人

    可阅读原文:http://c.raqsoft.com.cn/article/1536756719594?r=alice 集算器不仅有大数据计算,还有诗和远方.最近看到不少写诗机器人的新闻,于是尝试用集 ...

  7. cookie追加数据_集算器 SPL 抓取网页数据

    [摘要] 集算器 SPL 支持抓取网页数据,根据抓取定义规则,可将网页数据下载到在本地进行统计分析.具体定义规则要求.使用详细情况,请前往乾学院:集算器 SPL 抓取网页数据! 网站上的数据源是我们进 ...

  8. 集算器并行处理大文本文件的示例

    集算器可以方便地用并行方式处理大文本文件,下面通过一个例子来说明使用方法. 假设有个一千万条销售记录的文本文件sales.txt,其主要字段是SellerID(销售员).OrderDate(订单日期) ...

  9. 集算器协助Java处理结构化文本之条件过滤

    直接用Java实现文本文件中数据按条件过滤会有如下的麻烦: 1.文件不是数据库,不能用SQL访问.当过滤条件变化时需要改写代码.如果要实现象SQL那样灵活的条件过滤,则需要自己实现动态表达式解析和求值 ...

最新文章

  1. java 根据时间范围自动算间隔_Java根据开始时间结束时间计算时间间隔 x年x月x日...
  2. 这篇Nature子刊文章的蛋白组学数据PCA分析竟花费了我两天时间来重现|附全过程代码...
  3. 七月二十一日!! NVIDIA DLI 深度学习入门课程——计算机视觉
  4. idea关闭当前项目
  5. cocoapods 更新指定的第三方库
  6. wordpress option.php,简单了解WordPress开发中update_option()函数的用法
  7. spring-第十四篇之资源访问Resource接口
  8. flightgear_使用FlightGear进入虚拟天空
  9. Python对象实现ToString
  10. 中国地质大学网络计算机考试试题,中国地质大学《计算机》考试题答案
  11. js复制操作,复制成功弹出提示框
  12. NOI题库1.1-1.10答案
  13. 整理归纳:《一课经济学》—— 只见树木不见森林
  14. [Jzoj]3457. 沙耶的玩偶
  15. 手势识别原来还可以这样控制电脑,你知道怎么做到的吗?
  16. 数据分析在微博营销中的应用
  17. 《成语接龙》隐私说明
  18. HR怎样做好员工培训,避免背锅(一)
  19. 正在准备面试?一线互联网大厂面试真题系统收录!成功入职腾讯
  20. 智能优化算法:爬行动物搜索算法-附代码

热门文章

  1. Python,Jupyter Notebook,IPython快速安装教程
  2. 四面蚂蚁金服成功拿下offer,分享一下我是怎么从年前的外包到现在的蚂蚁金服架构师的!
  3. 闲聊linux中的input设备
  4. 金三银四 “狂飙” 季,一波综合面试题来了
  5. python问号表达式
  6. 信息学奥赛一本通-2073:【例2.16 】三角形面积
  7. Kubernetes(5)-K8s集群部署
  8. 深度学习求解偏微分方程
  9. LinkedList - 链表
  10. 12.Java- Maven 教程