摘要:
下文讲述存储过程编写的常见注意事项
实验环境:sql server 2008 R2
1.存储过程编写名称前缀注意事项
使用非sp开头的存储过程名称,避免出现同系统存储过程命名相同,导致存储过程无法执行的异常情况发生。
2.存储过程动态执行sql脚本,尽量使用sp_executesql
在存储过程中使用 sp_executesql执行sql脚本,可以使sqlserver缓存执行计划,加快sql编译速度,所以在存储过程中,我们应该尽量采用
sp_executesql替换exec动态执行脚本。
3.存储过程开头使用nocount on关键字
在存储过程开头使用 set noconut on关键字,可避免存储过程返回额外的信息,减少IO输出。
4.存储过程中表访问最好加上表Schema
在存储过程中访问表时,加上表Schema可以加快表检索,减少sql引擎访问缓存的次数,
也可避免用户无法检索到Schema时,产生的错误信息。
5.存储过程中避免使用长事务
在存储过程编写中,事务会锁定相应的表,我们尽量使每次事务短,减少锁表时间,加大存储过程对大并发的支持力度。
6.慎用游标
游标每次都会查询表,增大了对IO的访问次数,加大服务器负担,所以必须少使用游标
7.使用try catch捕捉sql错误信息
begin try
begin tran
/*sql脚本*/
commit
end try
begin catch
/*输出错误信息*/
rollback
end catch