【发布时间】:2017-03-07 05:26:59
【问题描述】:
我们使用的是 SQL Server 2014 SP2 CU4。让用户定义的存储过程以 sp_ 为前缀而不是 usp_ 对性能有什么影响?如何量化它,因为我们无法使用 sql 分析工具来衡量影响。
我在这个链接上读到,它确实有影响:
【问题讨论】:
标签: sql-server stored-procedures
我们使用的是 SQL Server 2014 SP2 CU4。让用户定义的存储过程以 sp_ 为前缀而不是 usp_ 对性能有什么影响?如何量化它,因为我们无法使用 sql 分析工具来衡量影响。
我在这个链接上读到,它确实有影响:
【问题讨论】:
标签: sql-server stored-procedures
sp_ 前缀是为系统存储过程保留的。它不应该用于用户存储过程。即使您有一个带有sp_ 前缀的本地存储过程,SQL Server 也会首先检查主数据库。
Aaron Bertrand 已在此处深入介绍了这一点:Is the sp_ prefix still a no-no?
引用关于影响的文章:
性能问题来自这样一个事实,即可能会检查 master 是否存在等效的存储过程,这取决于该过程是否存在本地版本,以及 master 中是否实际上存在等效对象。这可能会导致额外的元数据开销以及额外的 SP:CacheMiss 事件。
他也做了一些测试,结果如下:
【讨论】: