小張是一家公司的財務經理,需要分析年末的財務報告,小張就開始對財務數據進行處理并制作報告。可是在查看報告時卻發現,僅僅480W的明細數據,報告加載就用了1分鐘左右才展示出來。心想,難道要讓老板去查看這么慢的報告嗎?于是,他用永洪報表工具里制作報告模塊的檢測性能功能,排查到報表中有3個表達式是js表達式,沒有下推到數據庫執行導致報表性能很慢,最后他按照性能檢測中的建議將這幾個表達式改為了SQL表達式,再次打開報表時用了2秒鐘左右就打開了報表。
的確,在制作大數據分析報表的時候,最怕遇到報表加載慢、卡頓等性能問題。有時,別人上億數據量的報表即點即看,自己千萬級數據量的報表卻要加載幾分鐘,看著轉圈的加載圖標空悲嘆。那么我們應該用什么報表工具以及如何制作出高性能的報表呢?
永洪報表工具通過匯總分析客戶的有效反饋,在新產品中推出了靜態檢查報表性能的功能。用戶在制作報表時,系統就會對報表性能進行靜態檢測,告知用戶哪些地方會影響報表展示并給出合理的建議。
報表性能檢測原因分為三類,包括系統原因、報表原因和數據集原因。當報表中存在這三類原因中的任何一種時,報表右上角的“檢測性能”上會出現小紅點提醒,用戶可以點擊“檢測性能”查看具體原因和建議,并可以點擊“檢測性能”中的“下載”將所有性能慢的原因以Excel格式導出,如下圖所示:
當用戶將檢測性能中列出的所有問題按給出的建議全部修改后,紅點就會消失。
報表性能檢測頻率可以通過系統設置->系統參數配置->基本參數配置中的 db.performance.test.interval 屬性控制,如下圖所示:

該值默認為60s,即每分鐘對報表性能檢測一次,用戶也可以手動修改該值,修改后將按修改后的值進行檢測。
比如用戶在對維度列進行篩選時,產品默認顯示的值是1萬,超過1萬的值不會再顯示。一是我們認為一般情況下,維度值不會超過1萬;二是對于過濾組件來說,產品有個功能是計算過濾組件之間的聯動關系,值太大時,計算聯動關系需要的內存會很大,對客戶端的壓力會增大,所以我們將過濾組件和參數組件默認顯示的值設成了最大是1萬。如果用戶將系統的這個屬性改成了10萬,會將此信息收集到報表制作的系統原因中。
在報表端我們會做各種計算,比如綁定了報表端新建的計算列,組件上的分組和匯總,組件上的過濾等。一旦有任何一種計算不能下推到數據庫或集市進行計算,我們會將其收集到報表原因中。還有一些報表制作的原因,比如正常情況下,不會查詢全量數據,對于小張的例子來說,默認情況下他只用查詢本年度的財務報告就可以了,所以他完全可以在篩選條件上設置默認值為本年,這樣會大大加快報表打開的速度。所以對于查看報告時,查詢全量數據的情況,我們也會及時提醒并給出建議。
報表的數據綁定依賴于數據集,當數據集(SQL數據集/自服務數據集/組合數據集)上有不能下推到數據庫執行的列/操作或者過濾中的過濾條件不能下推到數據庫中執行時,會將此信息收集到數據集原因中。
對于數據集原因,用戶也可以在創建數據集時就會數據集進行性能檢測,從而提升數據集加載性能繼而提升報表性能。
想要知道系統原因、報表原因和數據集原因這三個分類下,更多導致性能問題的原因,請到我們官網試用我們最新的永洪報表工具V8.8版本去試用并查看。
永洪報表工具的報表性能檢測,有助于幫你分析報表性能原因,從而讓報表展示的更加快速。還在等什么呢?趕緊用起來吧!
疫情期間
免費使用Yonghong Desktop