加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server性能调优杂记(二)----傻瓜机的失效效应续

发布时间:2016-09-08 01:28:31 所属栏目:MsSql教程 来源:站长网
导读:上文说道了失效效应。只想说明在Performance Tunning方面只能根据情况来寻求原因并解决。这是一 个有意思的过程。大原则是经验,帮助我们少犯错误。因此,糟糕
上文说道了失效效应。只想说明在Performance Tunning方面只能根据情况来寻求原因并解决。这是一 个有意思的过程。大原则是经验,帮助我们少犯错误。因此,糟糕的设计,必然导致性能问题。没有经验 的程序员必然会写出糟糕的代码。但是良好的设计可以弥补程序员的经验不足。这个到此打住,这个 topic涉及品质管理,实在太大了。

再看一例,失效效应的体现。

还是上文数说道了2种SQL文 写法产生的执行计划。我选用一台双核的PC,相当于2个单核CPU。

有一个大表TB_CWB。记录约30 -40万。(在生产环境下属于小数据量,在我的测试中可以看成大表)。表上已经对fn_Clt_Datetime 做 了索引。

1.SQL文一

  select CWB_No,fn_Clt_Datetime,acctId_guid,fn_OrigZone_Id,DestSZMCode,DestZone_Id,CWBType,fn_Clt_Dat etime,fn_cwbtype,
   PayType,Payweight,StdPriceweight,StdFreight,IsCalculated,AFterDsctFreight,
   SchgFreight,InvcFreight,Salesamount,SchgDetail,SchgFreight_Remarks
  from OCS_TB_CWB
  WHERE
  fn_Clt_Datetime between '2008-9-1' and '2008 -9-16'

运行结果,发现奇慢无比。需要12秒才能出结果。

检查执行计划,发 现用了聚集索引扫描(主键),就是相当于选择了全表扫描的计划。因为CBO认为这句SQL比动用索引还要 快。见下图

SQL Server性能调优杂记(二)----傻瓜机的失效效应续

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读