如何分析報表性能問題?
總的分析思路:從底層往頂層分析
服務器硬件、網絡帶寬、報表系統架構、sql技術水平等等。
服務器硬件配置評估如服務器品牌,CPU、內存、閃盤硬盤等,詢問同行或者供應商配置水平情況。
用戶的電腦的CPU和內存配置也要簡單評估。
網絡帶寬評估如果報表是內網的,也要評估內網網絡的通暢情況。
系統技術性評估1.建立監控機制
收集報表運行耗時、頻率、時機,收集對應時間段CPU,內存,IO等關鍵硬件信息。我們使用的是Oracle數據庫,在后臺啟用AWR報表來監控程序運行和硬件情況,另外使用zabbix定期監控硬件運行情況。
2.抓出關鍵問題
通過第1步的監控,我們就能獲取哪些報表程序運行得差,可以有針對性地思考解決辦法。這里需要考慮的點就比較多了:
數據量大小
sql書寫水平
后臺表設計的合理性,是否契合業務模型
查詢條件對應的索引設計
......
這些可以通過查看sql的執行計劃,來點對點進行分析、解決。
如果報表是用內存數據庫,比如hana,Oracle 12c等等,在sql執行計劃方面需要關注,但更多地是關注表設計和報表業務邏輯算法,盡可能使用表關聯并發的方式開發。
運用以上思路和方式,基本可解決80%的報表性能問題。希望能幫助到你,謝謝!
上一篇夢幻2022鬼區排行
下一篇DBA好考嗎