存储过程指一组用于完成特定功能的SQL语句集,它被存储在数据库中,经过第一次编译后再次调用时不需要被再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,我们可以基于存储过程快速完成复杂的计算操作。以下为常见的存储过程的优化思路,也是我们编写事务时需要遵守的原则。

    • 尽量利用一些SQL语句代替一些小循环,例如聚合函数、求平均函数等。
    • 中间结果被存放于临时表中,并加索引。
    • 少使用游标(Cursors):SQL 是种集合语言,对于集合运算有较高的性能,而游标是过程运算。比如,对一个 50 万行的数据进行查询时,如果使用游标,则需要对表执行50万次读取请求,将占用大量的数据库资源,影响数据库的性能。
    • 事务越短越好:SQL Server支持并发操作,如果事务过长或者隔离级别过高,则都会造成并发操作的阻塞、死锁,导致查询速度极慢、CPU占用率高等。
    • 使用try-catch处理异常。
    • 尽量不要将查找语句放在循环中,防止出现过度消耗系统资源的情况。