【问题标题】:Using sp_ as prefix for user stored procedures in SQL server causing performance impact在 SQL Server 中使用 sp_ 作为用户存储过程的前缀会导致性能影响
【发布时间】:2017-03-07 05:26:59
【问题描述】:

我们使用的是 SQL Server 2014 SP2 CU4。让用户定义的存储过程以 sp_ 为前缀而不是 usp_ 对性能有什么影响?如何量化它,因为我们无法使用 sql 分析工具来衡量影响。

我在这个链接上读到,它确实有影响:

https://sqlperformance.com/2012/10/t-sql-queries/sp_prefix

【问题讨论】:

    标签: sql-server stored-procedures


    【解决方案1】:

    sp_ 前缀是为系统存储过程保留的。它不应该用于用户存储过程。即使您有一个带有sp_ 前缀的本地存储过程,SQL Server 也会首先检查主数据库。

    Aaron Bertrand 已在此处深入介绍了这一点:Is the sp_ prefix still a no-no?

    引用关于影响的文章:

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

    他也做了一些测试,结果如下:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      相关资源
      最近更新 更多