商業智能BI分析報表查詢慢,這是商業智能BI分析領域的一個常態。實際上,我們了解一下其中的原理,大概就能理解慢的原因,以及以后如何優化的一個方向。
數據可視化-派可數據商業智能BI可視化分析平臺
大部分的商業智能BI工具都是基于B/S架構的。B指的就是Browser瀏覽器,S指的就是Server服務器。每一次來自瀏覽器的點擊,都是通過HTTP協議像服務器發送一次Request請求,一次商業智能BI分析報表的查詢本質上發送了一條SQL查詢命令到了應用服務器端通過程序翻譯再到數據庫服務器做了一次數據查詢動作。如果這個商業智能BI分析報表的SQL查詢本身就比較復雜,底層數據模型建立的又不好,或者在數據庫服務器硬件環境配置本身也不好的情況下,這條SQL的執行可能就需要花費很長的時間。這個是第一個時間損耗的點。第二個點就是商業智能BI分析報表的SQL查詢可能返回了大量的數據,比如幾十萬、上百萬、上千萬、上億的數據,這個數據最后打包通過HTTP協議Response響應返回,需要通過網絡返回到Browser瀏覽器端,幾十萬的數據可能有上百兆MB,上百萬、上千萬的數據可能是幾百兆(MB)甚至一個GB的數據。大家試想一下平時下載個電影需要多長時間,下載一個幾百兆的文件需要多長時間,這個還跟網絡帶寬有很大的關系,這個是第二個時間損耗的點。數據可視化-派可數據商業智能BI可視化分析平臺
數據返回到瀏覽器前端,在可視化圖表展現的時候,如果在商業智能BI分析報表中寫了很多復雜的表達式、聚合函數,數據需要消耗本地瀏覽器所在電腦大量的內存來完成數據的計算。前端指標計算、條件表達式和各類聚合函數設計的越多,需要的時間就越長,這個就是第三個時間損耗的點。最后就是頁面的渲染,商業智能BI分析報表中可視化圖表越多、結構越復雜、列越多,數據渲染通過HTML組織到最后的呈現時間就越長,這個就是第四個時間損耗的點。到最后頁面全部加載完成,HTTP請求終止與服務器斷開連接。