在 SQL Server 中使用 sp_ 作为用户存储过程的前缀导致性能影响

Niv*_*xit 1 sql-server stored-procedures sql-server-2012

我们正在使用 SQL Server 2014 SP2 CU4,用户定义的存储过程以 sp_ 为前缀而不是 usp_ 对性能有什么影响。如何量化,因为我们无法使用 sql 分析工具衡量影响。我读过这个链接,它确实有影响://sqlperformance.com/2012/10/t-sql-queries/sp_prefix

将请求 SQL 服务器专家对此发表评论

谢谢,妮维达

The*_*war 5

sp_前缀是为系统存储过程保留的。它不应该用于用户存储过程。

即使您有一个带有 sp_prefix 的本地存储过程,SQL 也会首先检查主数据库。

Aaron Bertrand 在此处对此进行了深入介绍:sp_ 前缀仍然是禁忌吗?

引自关于影响的文章:

性能问题来自这样一个事实,即可能会检查 master 是否存在等效的存储过程,这取决于该过程是否存在本地版本,以及 master 中是否实际上存在等效的对象。这可能会导致额外的元数据开销以及额外的 SP:CacheMiss 事件。

他还做了一些测试……下面是结果

在此处输入图片说明