Oracle與集算器對比測試報告
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和一個窄表
計算:針對表每張表中的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表查詢
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與集算器對比測試報告
1.測試目的 針對相同的硬體環境和計算任務,對比Oracle和集算器的效能差異,為客戶選型提供參考。 2.硬體環境 裝置數量:1臺 CPU:16核 Intel(R) Xeon(R) CPU E5620 @ 2.40GHz 記憶體:20G 3.軟體環境 作業系統:CentOS6.4 64位 JDK:1.6
Hive 集算器 Impala效能對比測試報告(上)
目的 對比Hive、集算器、Impala這三種大資料解決方案在分組彙總和關聯計算時的效能差異。 硬體環境 PC數量:4 CPU:Intel Core i5 2500(4核) RAM:16G HDD:2T/7200rpm Ethern
Oracle Spatial分區應用研究之二:按縣分區與按省分區對比測試報告
oracle 出了 ali 明顯 基礎上 實驗方法 樣本 空間查詢 使用場景 1、實驗目的 在上一輪的實驗中,oracle 11g r2版本下,在87縣市實驗數據的基礎上,比較了分表與分區的效率,得出了分區+全局索引效率較高的結論(見上一篇博客)。不過我們尚未比較過
批量隨機鍵值查詢測試 集算器
【摘要】 當資料量巨大時,使用大批量隨機鍵值集獲取對應記錄集合,不僅僅考驗資料庫軟體本身,更在於程式設計師對資料的理解!如何在硬體資源有限的情況下將效能發揮到極致?點選:批量隨機鍵值查詢測試,來乾學院一探究竟! 複製摘要 本次測試主要針對集算器組表索引實現的批量鍵值取數效能,並與 Oracl
集算器(倉庫版)發布,黑科技獲得用戶好評
集群組表 並行列存 數據存儲 數據計算 2018年5月16日,集算器(倉庫版)攜帶多項黑科技正式發布。在發布之前的應用驗證中,倉庫版就已經用實力贏得了用戶的好評。北京銀行用戶在評價倉庫版時表示:在數據分析實踐中,高並發訪問、大數據量計算造成的系統響應時間過長的問題,始終沒有得到很好的解決。集算
集算器初體驗
強制 控制臺輸出 有意 包含 根據 main函數 有意義 自動 強烈 1、從經典的Hello, world! 開始先看圖(1):圖(1)新建p1程序文件,在A1格子中輸入=output(“Hello, world!”)。點擊圖(1)中紅圈圈住的三角按鈕,執行p1的代碼,就可
資料分析用它就夠了 | 37 個場景你要用集算器
【報表查詢效能】 1. 資料量大或併發多導致的查詢效能低下,BI 介面拖拽響應很慢 通過集算器編寫更為簡單高效的演算法加速計算程序,提升查詢效能 採用集算器可控儲存和索引機制,為 BI(CUBE)提供高速的資料儲存 2.T+0 實時全量查詢報表涉及資料量大,影響生產系統執
巧用集算器資料集
看如下圖所示報表: 這個報表從樣式來看,可以看作是一個簡單的網格式報表,統計著各種收支金額,但因為取數複雜,每個格子的資料都來自一個複雜的 sql 資料集,並且涉及十幾個,乃至幾十個資料集,藍色 區域裡每個格子都需要從各自的資料集裡檢索遍歷,查詢與左表頭關聯的記錄。為了方便體
20172323 2018-2019-1 《程式設計與資料結構》課堂測試報告
20172323 2018-2019-1 《程式設計與資料結構》課堂測試報告 課程:《程式設計與資料結構》 班級: 1723 姓名: 王禹涵 學號: 20172323 實驗教師:王志強老師 測試日期:2018年12月10日 必修/選修: 必修 1.測試內容 哈夫曼編碼測試 設有字符集:S={a,b,c,
資料分析之37 個場景使用到集算器
可閱讀原文:http://c.raqsoft.com.cn/article/1534732238335?r=alice 慢 1、清單式大報表難以及時呈現,採用資料庫分頁方式翻頁效率很差 集算器將計算和呈現做成兩個非同步執行緒,取數執行緒發出 SQL 將資料快取到本地,然後交給呈現執
10 行程式碼集算器實現寫詩機器人
可閱讀原文:http://c.raqsoft.com.cn/article/1536756719594?r=alice 集算器不僅有大資料計算,還有詩和遠方。最近看到不少寫詩機器人的新聞,於是嘗試用集算器簡單地實現一個。這個實現真的很簡單,簡單到只有10幾行程式碼,請看實現步驟:  
Oracle 與 DB2的詳細對比
概述 Oracle 資料庫10g(Oracle Database 10g)是第一個專門為企業網格計算設計的資料庫。Oracle Database 10g降低了資料管理成本,同時可以提供最優質的服務,能夠使IT迅速滿足業務需求的變化並最大限度降低風險。系統易於部署和管理,這
HAWQ與Hive查詢效能對比測試
一、實驗目的 本實驗通過模擬一個典型的應用場景和實際資料量,測試並對比HAWQ內部表、外部表與Hive的查詢效能。二、硬體環境1. 四臺VMware虛機組成的Hadoop叢集。2. 每臺機器配置如下:(1)15K RPM SAS 100GB(2)Intel(R)
10 行程式碼,集算器實現寫詩機器人
集算器不僅有大資料計算,還有詩和遠方。最近看到不少寫詩機器人的新聞,於是嘗試用集算器簡單地實現一個。這個實現真的很簡單,簡單到只有10幾行程式碼,請看實現步驟: 1.下載字典和詩詞 從網上找一個用於分詞的字典檔案,裡面記錄著每個中文詞彙的詞性。我從GitHub上找了一
集算器JDBC
集算器JDBC 類似一個不完整的資料庫JDBC驅動,它不帶物理表,可將集算器視為只有儲存過程的資料庫(較強的計算能力,較弱的儲存機制)。與使用資料庫JDBC非常類似,可以像呼叫儲存過程一樣呼叫集算器
Mysql資料庫Innodb與MyISAM的效能對比測試
由於近期有個專案對系統性能要求很高,技術選型上由於種種原因已經確定使用Mysql資料庫,接下來就是要確定到底使用哪種儲存引擎。我們的應用是典型的寫多讀少,寫入內容為也很短,對系統的穩定性要求很高。所以儲存引擎肯定就定在廣泛使用的Innodb和MyISAM之中了。
集算器處理兩個序表資料交叉
需求: 集算器指令碼能否把兩個序表的值交叉放,存為一個序表?比如 左右分別是查出的兩個序表,想合併成 分析與實現: 從結果看,要求兩個序表或結果集按照隔行交叉處理,直接的方式就會想到for迴圈。不過集算器有豐富的封裝函式(遍歷),實際可以用一個單元格代替用for
集算器如何將第一個sql語句中的結果作為第二個sql的引數值
集算器裡面如何將第一個sql執行的結果作為第二個資料集的引數值去過濾第二個資料集的資料呢?例如 我的第一個query() 裡面的結果是多條資料。然後將其中一個欄位的結果 作為 第二個資料集的引數去過濾資料。 在報表5 裡面ds2 資料集的引數 可以寫動態引數。表示式寫
集算器生成動態列結果集
表1(tb1)中部分源資料如下: Prjno Subtask Ddate Num P9996 P9996-sub002 2015-01-01 123 P9996 P9996-sub002 2015-0
集算器實現記錄合併
表1(T1)中儲存了單獨的id和name欄位,部分源資料如下: id name 1 a 2 b 3 c 4 d 5 e 表2(T2)中儲存了多個id組成的ids欄位,其值如下: