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