在《 【大數據之數據倉庫】選型流水記》一文中有提及,當時沒有測試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的重構,增強了性能和可維護性。可是,還是回答不了前面的問題......
又翻到一篇關於GreenPlum 4.3版本發布信息的博文:
https://www.pivotalguru.com/?p=614,我把其中比較重要部分截圖出來如下:

這里有對PQO(ORCA)做了比較具體的描述:1.優化了某些邊緣用例;2.優化了某些帶分區表、子查詢等特殊場景的性能。
看到這里,頓悟了一下,我正在做的TPCH測試,屬於Ad-Hoc類型,才22個用例,相對於TPCDS決策支持類型來講屬於比較比較常用和常見的,而且對數據集中的事實表,我也確實沒有分區(想知道原因可以留言)......哦哦哦,難怪沒有優勢=_____=
那,如果換用TPCDS來對比測試,PQO會不會有優勢呢?我想這篇HAWQ測試可以告訴我們一些答案:
https://www.pivotalguru.com/?p=1045
看這里:
本文來自網易雲社區,經作者何李夫授權發布。
原文地址:【大數據之數據倉庫】GreenPlum優化器對比測試
更多網易研發、產品、運營經驗分享請訪問網易雲社區。