性能测试案例分析
1.简要场景描述:
被测项目的数据库服务采用ORACLE 10g,测试功能点选择的是一个新建录入保存业务。当并发20用户时,数据库资源占用正常,处理业务响应时间正常,当并发40用户时,数据库服务器CPU占用率突增到100%,系统几乎不响应。
2.对ORACLE 10g进行监控:
2.1首先打开监控开关:
exec dbms_monitor.serv_mod_act_trace_enable (service_name=>'
');
在oracle安装目录\product\10.2.0\admin\gsp\udump目录下每个session形成.trc文件。
2.2通过tkprof进行分析:
根据日期选择相应的.trc文件,在命令行下通过tkprof进行分析:
tkprof servname_ora_2336.trc output=servname_ora_2336.txt SORT=(EXEELA, PRSELA, FCHELA)
形成结果文件servname_ora_2336.txt。
2.3查看分析结果文件:
发现存在大量的建临时
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
语句,耗用了大量的CPU资源,而且花费的时间很长。
create table myHelp4879f036d (Rowp int PRIMARY KEY,OID varchar(1000),Code
varchar(1000),Name varchar(1026),ZJM varchar(100),Path varchar(40))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 1 19.06 196.34 24 751455 1552 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 19.06 196.34 24 751455 1552 0
经交流,在录入业务数据时,对基础数据字典表进行了查询,每个保存业务要进行两次字典表查询,而字典表查询程序实现方式采用了建临时表的方法,频繁的建表删表,导致系统耗费了大量的资源,导致性能急剧下降。