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/?action-viewnews-itemid-142060

posted @ 2009-07-28 09:33  广陵散仙(www.cnblogs.com/junzhongxu/)  阅读(363)  评论(0编辑  收藏  举报