在《 【大数据之数据仓库】选型流水记》一文中有提及,当时没有测试GreenPlum的quicklz压缩算法和ORCA查询优化器,考虑到quicklz压缩算法因为版权问题不会开源(详情请参阅: https://github.com/greenplum-db/gpdb/blob/master/src/backend/catalog/quicklz_compression.c),今天我们就来补上已开源的ORCA查询优化器这一段。
GreenPlum有2个查询优化器:legacy query optimizer(简称LQO)和pivotal query optimizer(简称PQO),而后者就是传说中的ORCA,我把之前LQO和PQO的TPCH对比测试做了简要汇总,整理在本文,以飨各位同学。测试拓扑延续《【大数据之数据仓库】基准测试之TPCH》中的测试环境,选择了10GB和100GB两种规格的数据集,以达到测试纯内存、内存+磁盘这样两种场景。
10GB
10GB数据集的数据基本都在内存里,没有了磁盘IO开销:
100GB
两个测试结果显示,PQO并没有比LQO占明显优势啊,
为什么?
为什么?
这里有一篇关于PQO的历史:
https://www.pivotalguru.com/?p=971,简单来说就是:LQO源自postgreSQL的查询优化器,并对其进行了分布式改造,而PQO是对LQO的重构,增强了性能和可维护性。可是,还是回答不了前面的问题......
https://www.pivotalguru.com/?p=971,简单来说就是:LQO源自postgreSQL的查询优化器,并对其进行了分布式改造,而PQO是对LQO的重构,增强了性能和可维护性。可是,还是回答不了前面的问题......
又翻到一篇关于GreenPlum 4.3版本发布信息的博文:
https://www.pivotalguru.com/?p=614,我把其中比较重要部分截图出来如下:
https://www.pivotalguru.com/?p=614,我把其中比较重要部分截图出来如下:
这里有对PQO(ORCA)做了比较具体的描述:1.优化了某些边缘用例;2.优化了某些带分区表、子查询等特殊场景的性能。
看到这里,顿悟了一下,我正在做的TPCH测试,属于Ad-Hoc类型,才22个用例,相对于TPCDS决策支持类型来讲属于比较比较常用和常见的,而且对数据集中的事实表,我也确实没有分区(想知道原因可以留言)......哦哦哦,难怪没有优势=_____=
看这里:
本文来自网易云社区,经作者何李夫授权发布。
原文地址:【大数据之数据仓库】GreenPlum优化器对比测试
更多网易研发、产品、运营经验分享请访问网易云社区。