大資料量的報表如何快速分頁呈現?

xiaohuihui發表於2020-06-29

在說明這個問題的處理方法前,先了解下是什麼原因導致的大資料量報表呈現慢的問題。

一般不外乎這兩種原因:

1 . 資料查詢業務,查詢條件寬泛,導致資料庫查詢後的結果集資料條數達到幾百上千萬甚至過億;

2 . 採用記憶體運算機制,即如此龐大的資料量要一次性在記憶體計算完成,後再進行呈現,使用者體驗特別不好,這個過程中很可能因為計算量大 出現記憶體溢位,無法繼續計算。

針對這種情況,我們可以採用非同步處理的方式,將取數和呈現分為兩個執行緒非同步處理,取數執行緒發出 SQL 後不斷取出資料快取到本地,由呈現執行緒從本地快取中獲取資料進行顯示。這樣,已經取出並快取的資料就能快速呈現,不再有等待感;而取數執行緒所涉及的 SQL,在資料庫中保持同一個事務,也不會有不一致的問題,前面提到的兩個問題全部得以完美解決。

同時,藉助二進位制檔案儲存格式,報表還可以按行號隨機訪問記錄,而不用每次透過遍歷查詢資料。也就是說,這種儲存格式支援跳轉到任意頁訪問,從而極大地改善了使用者體驗。不過,由於採用了非同步機制,頁面端顯示的總頁數和總記錄數會隨著取數過程不斷變化。

目前潤乾報表已經將這種處理機制產品化,只需要一個簡單的設定就可以了。

詳細設定可參考:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2701218/,如需轉載,請註明出處,否則將追究法律責任。

相關文章