MSSQL优化总结

1.查询的时候,只需要查询必要的行(PS:这一点很重要,别看小,有时候.会大幅度提高查询效率,

例如:select articlesID, titileName, contents from b_articles,和 select articlesID, titleName from b_articles差别很大,

PS:contents:nvarchar(max) )

2.看IO的扫描次数和逻辑读取次数和执行计划,次数约多,证明SQL的效率越差,也很容易造成阻塞

3.索引要建立得合适,多余没有的索引,会造成索引扫描(PS:看执行计划就知,会index scan.)

4."查询条件"的时候.尽量不要使用涵数.例如:(datediff(d,createOn, getDate()))这样.因为这样搜索.会造成索引失效.(本人曾经试过,性能差天动地)

5.数据表设计要合理(PS:如果字段设计不合理,造成性能方面的影响,也是很大的)

6.尽量不要用not in,用not exists(PS:个人觉得以上两个都没用)

假设:用以下方法代替:

r_employee_protect

1.protectID

2.allotID

3.createDate

4.refreshDate

 

r_employee_allot

1.allotID

2.companyID

3.createDate

 

select * from r_employee_allot where allotID not in (select allotID from r_employee_protect)(PS:会导致扫描好多次)

应该用以下方法:

select * from

r_employee_allot A

left join r_employee_protect B

on A.allotID = B.allotID

where B.protectID is null

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值