SQL Azure故障排除以及查询优化

发表于:2011-11-01 09:28

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

 作者:未知    来源:51Testing软件测试网采编

  识别性能不佳的查询语句

  SQL Server为所有执行的查询生成一个优化过的查询计划。这使得SQL Server的优化器可以在同样或者类似的查询执行的时候重用查询计划,从而在最短的时间内接收数据。一旦数据发生变化,数据列上的统计信息会使得查询计划变得过期和低效。为了获得应用程序的最佳性能以及一致的用户体验,识别并且调试这些语句非常的重要。之前列出的DMV可以直接帮助识别那些有问题的查询。

  下面的是一些用于标识这些有问题的查询的基本查询语句:

  过多的重新编译:

  1. select top 25   
  2. sql_text.text,   
  3. sql_handle,   
  4. plan_generation_num,   
  5. execution_count,   
  6. dbid,   
  7. objectid   
  8. from   
  9. sys.dm_exec_query_stats a   
  10. cross apply sys.dm_exec_sql_text(sql_handle) as sql_text   
  11. where   
  12. plan_generation_num >1   
  13. order by plan_generation_num desc

  不够高效的查询计划

  1. select   
  2. highest_cpu_queries.plan_handle,   
  3. highest_cpu_queries.total_worker_time,   
  4. q.dbid,   
  5. q.objectid,   
  6. q.number,   
  7. q.encrypted,   
  8. q.[text]   
  9. from   
  10. (select top 50   
  11. qs.plan_handle,   
  12. qs.total_worker_time   
  13. from   
  14. sys.dm_exec_query_stats qs   
  15. order by qs.total_worker_time descas highest_cpu_queries   
  16. cross apply sys.dm_exec_sql_text(plan_handle) as q   
  17. order by highest_cpu_queries.total_worker_time desc 
  18.  
  19. I/O瓶颈  
  20. select top 25   
  21. (total_logical_reads/execution_count) as avg_logical_reads,   
  22. (total_logical_writes/execution_count) as avg_logical_writes,   
  23. (total_physical_reads/execution_count) as avg_phys_reads,   
  24.  Execution_count,   
  25. statement_start_offset as stmt_start_offset,   
  26. sql_handle,   
  27. plan_handle   
  28. from sys.dm_exec_query_stats    
  29. order by   
  30. (total_logical_reads + total_logical_writes) desc

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号