从 TPCH 测试看 SPL 性能优化技巧 1

本文通过TPCH测试,探讨了SPL在性能优化方面的技巧,包括并行计算如何提高运算速度,何时选择groups和groupx,游标使用对性能的影响,以及组表在计算速度和存储效率上的优势。实验结果显示,通过并行计算和优化数据结构,可以显著提升处理大数据的速度。
摘要由CSDN通过智能技术生成

测试环境说明

CPU:4颗,主频2.6G,每个CPU内核数8个。

硬盘:800G,15000转SAS硬盘,理论读写速度150m/s。

内存:64G。

操作系统:Linux cent os 6

SQL1

select

         l_returnflag,

         l_linestatus,

         sum(l_quantity) as sum_qty,

         sum(l_extendedprice) as sum_base_price,

         sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,

         sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,

         avg(l_quantity) as avg_qty,

         avg(l_extendedprice) as avg_price,

         avg(l_discount) as avg_disc,

         count(*) as count_order

from

         lineitem

where

         l_shipdate <= date '1998-12-01' - interval '90' day(3)

group by

         l_returnflag,

         l_linestatus

order by

         l_returnflag,

         l_linestatus;

LineItem表原始数据大小为79.6G(文本格式),数据行数600037902。

Oracle空间文件大小为200G,lineItem表数据导入时间20个小时。

SQL运行时间为637秒。

在SQL里增加并行选项select /*+ parallel(lineitem 10) */后,运行时间下降到397秒。

用集文件执行

         集文件为集算器支持的数据文件格式。特点是对数据进行一定的压缩,以提高查找和计算的磁盘性能。

         集文件结构简单,应用范围明确,其生成速度远远高于oracle的数据导入速度。lineitem数据导入仅需48分28秒,最终生成的集文件大小为56.9G。

        

         用集文件改写上面SQL的SPL脚本如下:

 

A

1

=now()

2

=file(path+"lineitem.btx")

3

=A2.cursor@b(
     L_RETURNFLAG,  L_LINESTATUS,  L_QUANTITY,
     L_EXTENDEDPRICE, L_DISCOUNT, L_TAX,   L_SHIPDATE
    )

4

=A3.select(L_SHIPDATE<=date(“1998-09-02”))</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值