近期根据老大要求对公司ERP生产库的性能调整和优化,由于ERP生产库之前一直是各个系统开发人员进行管理,没有专门的DBA进行调整,索引,表结构什么的相对来说还是比较混乱的,首先从AWR就可以看到很多问题了。
上周写了个调整方案,首先是将其中一个大表进行分区,上周末抽时间进行了分区转换后,昨天下午生产库的几个应用都连接不上去了,查了查错误原因,是因为进程太多了,想想,并没有调整其它数据库参数,而且问了开发人员应用也没有做变动。于是查了下大量进程,其中有很多进程名为oracle.exe(p01......),估计是执行了大量的并发操作导致的并发进程。
于是又做了下AWR,发现TOP 5其中PX 等待严重,看看SQL STATICS,发现执行时间最长的是普通表转换为分区表的表,再将SQL语句询问开发人员后,确认了该SQL语句的执行会进行跨分区访问,而之前说查询的话是会圈定分区范围的,看来尽信开发人员不能啊。。。可是这个和大量并发进行产生有什么关系呢,跨分区也不会导致大量并发进程出现啊,因为这个应用用的人并不多,除非启用了表并发,一查看表的属性,果然,表的PARALLEL属性是ENABLE,并且DEGREE 是8,当初是考虑提升表性能,但是跨分区导致了访问性能的大负荷。于是通知业务人员关掉应用,进程立马降下来了,同时关闭表并发后无线程超出。所有应用正常访问。
后续处理,看来还是需要一个全局索引的,加了全局索引后,性能提升明显。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7765728/viewspace-741623/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7765728/viewspace-741623/