100萬條的報表要多長時間 - Web報表系統的性能問題探討
生成一個100萬條數據的報表要多長時間? - Web報表系統的性能問題是很多用戶關心的。本文將討論:性能是受什么影響的,如何提升Web報表系統的性能,在性能方面會出現的局限是什么。
一個參考數據:某報表系統,使用1臺P4 2.0GCPU, 512M內存的PC進行測試,出現了內存崩潰。就意味著報表完全打不開。
實際上,這個數據說明不了什么,因為報表的樣子,數據的情況,相關環境都是不一樣的,很難進行什么比較。但是這里面真正需要的:是弄明白性能是受什么影響的,如何提升Web報表系統的性能,提升報表系統性能的方法的局限性。
影響Web報表系統性能的,最主要的可能是兩個方面,一個是報表與數據的關系,另一個是服務平臺的計算能力。
先看前一個,報表與數據的關系。如果傳到報表的數據大量是多余的數據,或者提取數據的過程中數據庫的計算過于復雜(比如復雜的視圖、存儲過程),則肯定會影響性能。反之,如果報表模型先進,需要傳過來的的數據量少,如果不需要復雜的預計算過程,則肯定報表系統性能會比較高。
再看服務平臺(計算平臺),簡單講方法就是:CPU,內存最直接影響性能。
相應地,提升性能的方法也很簡單,一是采用更合理的報表設計,或者說采用在這方面有優勢的報表系統,二是增加CPU或采用能力更強的CPU,以及增加內存。
事實上,為了提高報表性能而提升報表服務器的大型機的CPU,內存 是不實際的。報表只是一個展現工具,不是關鍵應用。報表慢的原因主要與數據庫取數和sql語句有關,如果在設計中沒有解決這樣的問題,換再快的CPU,加再多的內存,也沒有用。
這里筆者只所以舉例某報表系統,就是因為該報表在設計方面的問題,造成數據庫取數性能上的瓶頸。
由此可見,如果web報表工具在數據庫中取數方面做的不好,是根本不可能應對日益龐大的報表數據的。
posted on 2008-08-03 20:41 Jones_Zhu 閱讀(291) 評論(0) 編輯 收藏 所屬分類: Java 技術