mssql sqlserver 优化方法分享-sql脚本编写


摘要:
下文主要讲述,从sql脚本编写的角度去优化数据库的访问


1.sql运行中,多阅读查询计划,同一句sql脚本,查询计划可能不同
例: sql脚本生成新执行计划时,会从是否具有索引,表条数,条是否生成了统计信息,等多个方便考量,然后生成合理的执行计划
————————————
2.sql写法大小写保持一致
例:
select * from test
Select * From test
这两句sql脚本看似一致,其实会生成不同的查询计划
———————————-
3.减少表连接的层数
多使用临时表,分步骤查询数据,这样查询会降低sql脚本的复杂度,方便注释的编写,和后续的修改
———————————-
4.尽量将子查询修改为连接写法
减少数据读取的次数
———————————-
5.多实用绑定变量
多使用sp_executesql执行绑定变量的sql脚本,此种方法可以达到执行计划重用的目的。
———————————-
6.事务块尽量小
begin tran 事务块尽量小,因为事务运行中会锁表,
如果事务过大,会导致锁表时间过长,导致系统性能降低
————————————
7.慎用nolock
nolock 会导致脏读
能使用临时表的地方就使用临时表,少使用nolock
因为使用临时表,可提高系统并发性能
————————————
8.少用row_number分页
因为row_number开窗函数分页看起来写法很优雅,但是会导致全表扫描,
所以分页写法,最好使用临时表进行分页
———————————-
9.聚集索引建立在排序字段上
可使数据插入速度得到提升,避免每次数据插入时,都重新归档,降低系统性能
———————————–
10.建立查询索引时
建立索引时,注意include包含所用的字段,可以避免减少获取数据逻辑扫描次数
————————————
11.连接的写法
尽量用小表去关联大表