mssql sqlserver 影响sql脚本性能的因素


摘要:
下文将讲述影响sql脚本性能的相关因素,如下所示:



索引应用

1.sql检索脚本上where过滤列是否加入合理索引
2.数据表突然增大,导致索引计数不准确,查询计划走错索引
3.过滤列上加入函数,导致过滤条件未走索引 where dbo.fun(test) >88



循环处理处理

循环处理是否涉及大循环(大遍历)
循环尽量采用不锁表的方案(结合实际业务),避免循环的时候出现锁表,导致死循环



临时表与表变量

使用临时表或表变量时,先预估表大小。
在sqlserver中 表变量不受事务控制,写入数据的效率比临时表高;
表变量不会产生计数信息,sqlserver无法预估查询开销,
如果临时表参与数据查询时,我们建议使用临时表作为数据缓存(因为查询分析器可以自动选择最优方案)



其它注意事项

尽量使用短sql
尽量使用短事务
返回可用数据,尽量不返回无需使用的数据占用服务器带宽和网络压力
select 查询中少用 “不等于” 或”not” 这种关键字
sql脚本中不做无用的排序操作
不向客户端返回过多无用的数据
使用联接代替exists(和in)
减少or条件的写法,多使用union all