報表呈現有這麼幾個階段:取數、報表計算、生成 html 及頁面渲染,報表計算是考察報表效能中較為重要的一環。多資料來源(集)關聯報表是一種計算量隨規模增長較大的報表,適合用於進行此項測試。本文將對比報表的關聯運算效能,產品依然是三款:潤幹報表、finereport、smartbi,均使用最新版本,涉及報表資料**為同庫同表。
測試採用多資料集間關聯計算,報**式很簡單,具體可參考下面的說明。
pos 交易情況統計,統計所有商戶(包括還未使用但已申請且開頭 pos 刷卡業務的),使用本行 pos 機刷本行卡,和他行卡刷本行 pos 的資料(另外區分儲蓄卡和信用卡),彙總值包括筆數和交易金額。
資料集 5 個:
1、 所有商戶(ds1):select * from 商戶 where c_code<=?
2、 本行儲蓄類(ds2):select * from pos交易資料 where tran_type=1 and c_code<=?
3、 本行信用卡類(ds3):select * from pos交易資料 where tran_type=2 and c_code<=?
4、 他行儲蓄類(ds4):select * from pos交易資料 where tran_type=3 and c_code<=?
5、 他行信用卡類(ds5):select * from pos交易資料 where tran_type=4 and c_code<=?
1、 所有商戶(ds1):select * from 商戶 where c_code<=? 2、 本行儲蓄類(ds2):select * from pos交易資料 where tran_type=1 and c_code<=? 3、 本行信用卡類(ds3):select * from pos交易資料 where tran_type=2 and c_code<=? 4、 他行儲蓄類(ds4):select * from pos交易資料 where tran_type=3 and c_code<=? 5、 他行信用卡類(ds5):select * from pos交易資料 where tran_type=4 and c_code<=?
通過 c_code(商戶編碼)關聯。
報表模板:
注:本例是對實際業務場景簡化後進行的對比,實際情況涉及的 sql 及計算場景複雜的多,可參考: 我們怎樣把 s 銀行 pos 機交易報表提速 30+ 倍
以下資料規模中,「*」左側資料為商戶記錄條數,右側為其他 4 個每資料集的記錄條數,如 5000,則 ds2 到 ds5 每個資料集都是 5000 條資料。「報表計算」為從完成取數到生成 html 前時間。另外,報表每頁按 100 行分頁。
從資料上可看出,潤幹稍優於帆軟,資料量越大表現越明顯,但差距不算大,都比較不錯。smartbi 相對較差,20000*20000 規模已有 4、50 倍差距。 以上結果和之前測試渲染及報表容量中報表計算階段的資料體現也是一致的。
本文對比報表工具解決多源(集)關聯計算問題,也是「報表計算」階段(取數都同庫同表同走 jdbc,無區別)考察報表計算能力的情況之一,從資料可以看出潤幹效能最高,得益於計算模型的優化,帆軟次之,兩家都不差,有較強的實用性。smartbi 和帆軟報表的製作過程幾乎一樣,但計算效率卻差了數十倍,說明其計算模型有待改進。
報表工具對比選型系列 - 頁面渲染效能
報表工具對比選型系列 - 容量及相關效能
報表工具選型對比系列 大報表
有些報表查詢出的資料行數可達千萬甚至上億,這類報表通常被叫做大報表,大多數情況下都是些清單明細資料包表,也有少量分組報表。針對大報表,如果像常規報表一樣,將資料一次性全取再交給前端呈現是不可行的。一是等待時間太長,使用者體驗差 二是很可能導致記憶體溢位造成應用崩潰。首先了解下各家的解決方式或機制。帆...
報表工具選型對比系列 大報表
有些報表查詢出的資料行數可達千萬甚至上億,這類報表通常被叫做大報表,大多數情況下都是些清單明細資料包表,也有少量分組報表。針對大報表,如果像常規報表一樣,將資料一次性全取再交給前端呈現是不可行的。一是等待時間太長,使用者體驗差 二是很可能導致記憶體溢位造成應用崩潰。首先了解下各家的解決方式或機制。帆...
報表工具選型對比系列 大報表
有些報表查詢出的資料行數可達千萬甚至上億,這類報表通常被叫做大報表,大多數情況下都是些清單明細資料包表,也有少量分組報表。針對大報表,如果像常規報表一樣,將資料一次性全取再交給前端呈現是不可行的。一是等待時間太長,使用者體驗差 二是很可能導致記憶體溢位造成應用崩潰。首先了解下各家的解決方式或機制。帆...