mssql sqlserver 存储过程编写注意事项及存储过程优化方法


摘要:
众所周知:优化后的存储过程运行效率比未优化的存储过程要高出数倍,使用低效的存储过程会影响系统的其它模块的使用,使系统整体效率变的低下
下文主要讲述存储过程编写注意事项,
使存储过程达到最优的运行效果,具体措施如下所示:



1.存储过程编写完毕,准备提交时,需使用sqlserver自带的查询计划分析器分析一下存储过程是否为最优。

2.存储过程,出现跨库读取数据,需采用view进行中间缓存
3.存储过程中,脚本编写注意事项:
3.1 避免大事务,因为大事务运行时间长,锁表时间长,会降低系统的并发,导致其它的应用异常。
3.2 避免重复读取一张表的数据,应将数据缓存至临时表,减少读取次数
3.3 少使用游标
3.4 where 语句注意索引顺序
3.5 少用子查询 多实用连接
3.6 少用exists 多用外连接
3.7 注意count(1)和count(*)的效率对比
3.8 存储过程参数类型和表中的数据类型需一致,避免出现转换
3.9 避免大表出现全表扫描
3.10 多用union all 少用union
3.11 insert update 操作时候需谨慎,避免出现异常
3.12 结合sql脚本,观察聚集索引建立是否合理
3.13 避免频繁的创建和销毁临时表
3.14 如果update 非常大的表时,可能会生成大量的事务日志,导致其它异常发生
3.15 合理维护索引碎片,使索引保持可用状态
3.16 临时表使用完毕后,先 truncate table 然后drop table