3)SQL语句及其索引或锁定属性问题
问题:SQL语句及其索引或锁定属性不合理可能引发DISKIO过忙(磁盘读/写数据)或者CPU过忙(在内存中索引排序),造成执行时间过长,阻塞线程的执行,最终引发系统挂起或者执行超时引发系统挂起,例如,错误信息:
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2857) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate
死锁引发系统挂起,例如错误信息:
java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:170)
解决办法:优化SQL语句及其索引或锁定属性。
3.性能调优应该注意的要点
● 要点1:在应用系统的设计开发过程中,应始终把性能放在考虑的范围内。
● 要点2:确定清晰明确的性能目标是关键。
● 要点3:必须保证调优后的程序运行正确。
● 要点4:系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段。
● 要点5:调优过程是迭代渐进的过程,每次调优的结果都要反馈到后续的代码开发中去。
● 要点6:性能调优不能以牺牲代码的可读性和可维护性为代价。
性能调优是一个很复杂的过程,就好比一个人每天在上班路上需要消耗1.5小时,如何调优让这个人上班路上开销的时间变小。性能调优需要有全面的知识和背景,需要对被调优对象有全面的了解和跟踪,才能逐步抽丝剥茧找到某块短板,将这块短板加长后,再找到下一块短板,依此类推。
很多公司在招聘性能测试工程师的时候都会提及性能调优这个职责,但是只靠一个性能测试专家是很难的。因为如果你想要对一个三层架构的网络应用进行调优,那么需要对网络架构、WWW服务、APP应用、DB数据库都相当精通,才能完成所谓的调优工作,而这样的人已经可以胜任架构设计师的职位了,如果让他去做性能测试工程师是否有些大材小用了呢?
不过作为一个性能测试工程师,在成长的初期需要对性能测试调优的各个对象都有所了解,通过相关部门的人员协助完成调优工作,随后就是逐步加深,并且选择一个具体的方向进行深化并成为某一方面的性能测试及调优专家。
(未完,精彩待续)
本文选自《51Testing软件测试作品系列》之十——《性能测试进阶指南——LoadRunner11实战》。
本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关阅读: