SQL语句的优化分析

发表于:2014-7-03 09:35

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

 作者:张龙豪    来源:51Testing软件测试网采编

  sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况。
  网速不给力,不稳定。
  服务器内存不够,或者SQL 被分配的内存不够。
  sql语句设计不合理
  没有相应的索引,索引不合理
  没有有效的索引视图
  表数据过大没有有效的分区设计
  数据库设计太2,存在大量的数据冗余
  索引列上缺少相应的统计信息,或者统计信息过期
  ....
  那么我们如何给找出来导致性能慢的的原因呢?
  首先你要知道是否跟sql语句有关,确保不是机器开不开机,服务器硬件配置太差,没网你说p啊
  接着你使用我上一篇文章中提到的2柯南sql性能检测工具--sql server profiler,分析出sql慢的相关语句,就是执行时间过长,占用系统资源,cpu过多的
  然后是这篇文章要说的,sql优化方法跟技巧,避免一些不合理的sql语句,取暂优sql
  再然后判断是否使用啦,合理的统计信息。sql server中可以自动统计表中的数据分布信息,定时根据数据情况,更新统计信息,是很有必要的
  确认表中使用啦合理的索引,这个索引我前面博客中也有提过,不过那篇博客之后,还要进一步对索引写篇文章
  数据太多的表,要分区,缩小查找范围
  分析比较执行时间计划读取情况
  select * from dbo.Product
  执行上面语句一般情况下只给你返回结果和执行行数,那么你怎么分析呢,怎么知道你优化之后跟没有优化的区别呢。
  下面给你说几种方法。
  1.查看执行时间和cpu占用时间
  set statistics time on
  select * from dbo.Product
  set statistics time off
  打开你查询之后的消息里面就能看到啦。
  2.查看查询对I/0的操作情况
  set statistics io on
  select * from dbo.Product
  set statistics io off
  执行之后
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号