SQL语句性能测试

发表于:2009-7-27 14:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技    来源:51Testing投稿

#
SQL
分享:

  随着软件系统的复杂度提高,软件系统的性能瓶颈可能出现的地方有很多,可能是代码,也可能是应用服务器,可能是前端界面层,也可能是中间件,还有,可能是数据库。而对于数据库出现瓶颈而言,又要分两种情况,一种是数据库架构、设计有问题;另外一种则是提交处理的SQL语句有问题。

  据统计,在数据库应用系统中,大部分的性能问题都是由于低效率的SQL语句造成的,在性能问题中占了80%以上的比例。这提醒我们,软件系统中的SQL语句测试和性能调优不可忽视。我们需要通过优化SQL语句来避免很多数据库的性能问题。

  SQL测试和调优过程

  一个标准的SQL测试和调优过程需要包括4个迭代步骤:

  (1)识别有问题的SQL语句

  第一步是找到引起性能问题的SQL语句,这些SQL语句可能嵌入在前端程序代码中,可能在后台数据库对象中,例如存储过程、视图等。

  对于那些动态构建的SQL语句,也就是说只有程序执行时才组合创建成可执行的SQL语句,我们可以通过一些工具来捕获它们,例如对于SQLServer,可以使用附带的事件探查器。

  (2)优化SQL语句

  第二步是在数据库中准备适当的数据,执行SQL语句,查看性能表现。数据的准备工作可以通过编写Insert语句来完成,也可以借助一些现成的工具(例如DataFactory)来完成。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/82/n-141082.html

  在这里,SQL Optimizer会自动分析这条SQL语句的数据库执行计划。SQL Optimizer的Auto Tune功能则可以智能地对给定的SQL语句进行分析,找出语义上一致的可替换语句,也就是说找出那些能查询出相同结果,但是写法不一样的SQL语句。

  例如下面的SQL语句可以中使用了IN关键字:

  但是要得到同样的查询结果,我们也可以用EXISTS关键字,只不过语句的写法不一样:

  ……………………

查看全文请点击下载:http://www.51testing.com/html/82/n-141082.html

版权声明:51Testing软件测试及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • RoseLv
    2009-8-21 10:22:10

    呵呵,给你找到一个bug,sql语句和你介绍的刚好反了

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号