关于SQL语句性能测试

上一篇 / 下一篇  2009-09-26 12:18:34

 

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



TAG:

引用 删除 Lisa.   /   2009-10-05 11:05:53
testwhy的个人空间 引用 删除 testwhy   /   2009-10-01 14:45:55
Jessica_GEE 引用 删除 jxxshenchen   /   2009-09-30 22:18:02
恩。。大部分情况下,exists大于in的性能,因为in要一个个比较、筛选,而exists只要知道有没有
 

评分:0

我来说两句

日历

« 2024-03-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 6833
  • 日志数: 18
  • 建立时间: 2009-09-25
  • 更新时间: 2009-10-02

RSS订阅

Open Toolbar