代码之家  ›  专栏  ›  技术社区  ›  adopilot

MSSQL中的命名函数fn myFuction是否需要额外的性能

  •  1
  • adopilot  · 技术社区  · 14 年前

    这里有人提到我们应该避免在MS SQL server中命名存储过程,比如sp_XXX
    因为在检查时添加到SQLServer的时间确实存在这样的系统SOTRID过程。因为所有系统存储过程都以sp_u开头。

    现在我想知道的是,在MSSQL中使用函数的情况下,在查找系统函数时,fn_u之类的命名函数是否会占用SQL更多的时间?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Mutation Person    14 年前

    不,我不这么认为。

    找到以下线程:

    http://bytes.com/topic/sql-server/answers/78872-udf-starting-fn_

    不。要调用系统提供的[用户定义函数],请 需要使用::,所以这就是SQL 服务器正在查找。提供的所有系统 udf是表函数,作为标量 系统函数根本不是udf。

    希望这有帮助

        2
  •  3
  •   Chris Baxter    14 年前

    对于功能来说,这并不重要,但是建议 不是 使用前缀 sp公司_ 对于存储过程,因为它定义了系统存储过程,并且可能导致在主数据库中进行额外的查找。

    因为sp_u前缀是为系统保留的 存储过程和任何存储 具有sp_u前缀的过程将 在MASTER中引起额外的查找 数据库。还有一点 注意,如果存储过程使用 与系统在用户数据库中同名 主数据库中的存储过程, 用户数据库中的存储过程 永远不会作为SQL Server执行 在主人面前永远是第一位的 数据库并将执行该数据库 而是用户数据库中的一个。

    http://furrukhbaig.wordpress.com/2007/08/22/stored-procedures-factssheet/

    http://msdn.microsoft.com/en-us/library/dd172115.aspx