环境:hpux 11.11,oracle 9204 rac.
应用:2层架构. 150-200个session. 7x24小时.
性能问题: 突然客户端速度慢.不能忍受.
1.检查cpu, io
top, iostat
cpu使用率70%左右, 不是瓶颈.
iostat,有一个硬盘Io特别严重,其他压力不大. 对比以前正常情况的数据,基本正常.
2.沟通,了解到, 有新增应用.但是已经2个月了,都比较正常.
3.针对是2层架构情况,在测试机器上启动客户端,用dbms_system.set_ev跟踪10046事件,在客户端做简单操作,看等待情况.
发现排在前面的都是一个查询语句,走得是全表扫描.
查此表数据量,二十多万,查此表索引,发现没有索引.
初步判断与此相关.
跟踪一个正常的客户端,跟踪15分钟,再按照fchelc排序,耗时最长的大部分也是这个语句.
最长达6秒. 基本确定是全表扫描引起.
沟通发现,这个表数据量在3个月内增加到二十多万. 和实际情况相符. 随着数据量增大,全表扫描已经成为瓶颈.
建议: 在此字段上创建索引.
效果:创建后,客户端响应时间明显检查.