优化过程:
经过监控、诊断,进行了如下优化操作:
1·数据库中存在较多的低效SQL,对这些低效SQL进行了优化操作,减少其对于资源的争用,缩短其由于执行而持有资源的时间,大大提高了吞吐量,减少了资源的并发争用,提高了响应速度;
2·数据库部分库结构设计不合理,对部分索引结构进行了优化调整,并对需要进行分区的表,进行了分区处理,区分了冷热数据,提高了可用性和性能;
3·在和开发商进行了充分沟通后,对模糊查询进行了优化。部分冷数据表,采用了全文检索功能改进模糊查询效率。部分应用采用在查询中区分了模糊查询和精确查询,让最终用户了解模糊查询和精确查询的区别,降低其对模糊查询的响应预期,并且避免了最终用户模糊查询时的频繁刷新操作;
4·对RAC心跳网络进行了改进,并对RAC各节点上的应用进行了适当分离,减少了数据访问的交集的大小;
5·在应用软件维护缺失的情况下,无法短期内优化代码绑定变量,启用cursor_shaing=similar,来减少解析对于CPU的消耗;
6·优化AIX系统的maxperm%,minperm%参数,降低文件系统缓存内存对于内存的消耗,减少由于PAGEIN,PAGEOUT造成的IO和CPU消耗;
优化效果:
数据库整体健康状况大大提高,并发会话数由原来的120多,减少到30左右,不再出现阻塞情况。操作系统层面CPU的使用率平均保持在30%以下,内存在85%左右极少出现pagein和pageout操作。应用响应速度大幅度提升,部分应用响应速度由原来的1小时以上提高到10s以内。