| 存储过程是MSQL数据库应用程序的核心,好的存储过程能使程序运行的更快,充分发挥T-SQL的功能。下面是我的学习总结,一方面方便自己使用,另一方面方便大家交流。如果大家有好方法,请跟贴,我会定时整理并不断追加。 |
| 一、SQL执行性能方面: |
| 1.1、将储存过程的所有者作为前缀指定给存储过程名称,以避免SQL Server通过搜索其系统编目获得该信息。如 EXEC dbo.MyProcedure 性能优于 EXEC MyProcedure。 |
| 1.2、确定储存过程命名规则时,最好不使用sp_前缀,因为储存过程加上sp_前缀后,SQL SERVER就会对它进行特殊处理。首先查找master数据库,查找与之相匹配的存储过程名称,如果没有找到,搜索当前数据库以查找匹配的存储过程,使用不同的命名规则就可以避免不必要的额外处理开销。 |
| 1.3、SET NOCOUNT。每个T-SQL语句执行完后,都会通过网络向客户反馈受该语句影响的行数,存储过程当然也不例外。这在执行大量T-SQL语句的大型存储过程时或大量用户同时执行时,不必要的网络通信开销就会很大。 将SET NOCOUNT选项设置为ON,就可以取消反馈,以提高存储过程的效率。 |
| 1.4、在可能的情况下使用 OUTPUT 参数。通过使用 OUTPUT 参数返回标量数据,可以略微提高速度并节省少量的处理功率。在应用程序需要返回单个值的情况下,请尝试此方法,而不要将结果集具体化。 |
| 1.5、提供返回值。使用存储过程的返回值,将处理状态信息返回给进行调用的应用程序。将一组返回值及其含义标准化,并一致地使用这些值。这会使得处理调用应用程序中的错误更加容易,并向最终用户提供有关问题的有用信息。 |
浙公网安备 33010602011771号