总的分析思路:从底层往顶层分析
服务器硬件、网络带宽、报表系统架构、sql技术水平等等。
服务器硬件配置评估如服务器品牌,CPU、内存、闪盘硬盘等,询问同行或者供应商配置水平情况。
用户的电脑的CPU和内存配置也要简单评估。
网络带宽评估如果报表是内网的,也要评估内网网络的通畅情况。
系统技术性评估1.建立监控机制
收集报表运行耗时、频率、时机,收集对应时间段CPU,内存,IO等关键硬件信息。大家使用的是Oracle数据库,在后台启用AWR报表来监控程序运行和硬件情况,另外使用zabbix定期监控硬件运行情况。
2.抓出关键问题
通过第1步的监控,大家就能获取哪些报表程序运行得差,可以有针对性地思考解决办法。这里需要考虑的点就比较多了:
数据量大小
sql书写水平
后台表设计的合理性,是否契合业务模型
查询条件对应的索引设计
……
这些可以通过查看sql的执行计划,来点对点进行分析、解决。
如果报表是用内存数据库,比如hana,Oracle 12c等等,在sql执行计划方面需要关注,但更多地是关注表设计和报表业务逻辑算法,尽可能使用表关联并发的方式开发。
运用以上思路和方式,基本可解决80%的报表性能问题。希望能帮助到你,谢谢!