【问题标题】:When should we use stored procedure instead of function in SQL Server 2008?我们什么时候应该在 SQL Server 2008 中使用存储过程而不是函数?
【发布时间】:2014-03-14 20:02:44
【问题描述】:

由于我不太清楚何时使用存储过程而不是函数,

我有一个场景,一个函数已经被使用,但是由于在存储过程中执行需要很长时间,现在我可以用一个过程替换这个函数(返回一个字符串)吗?

谁能解释一下用存储过程替换函数时会发生什么?

提前致谢。

【问题讨论】:

    标签: sql-server-2008 function stored-procedures


    【解决方案1】:

    两者都没有神奇的性能提升。如果它们包含相同的代码,它们将具有相同的性能。

    我会说,除非或直到您达到功能限制,否则请将其保留为功能 - 例如如果您想实际更改数据库状态。

    函数更易于组合 - 您可以直接从其他语句(例如 SELECT)中调用它们 - 而存储过程必须显式调用。

    【讨论】:

    • 但在我的场景中,这个函数一次需要 500,000 行作为输入并且无法更快地执行,我应该如何控制流量或提高性能。
    • @Pink - 检查执行计划,考虑添加适当的索引。没有魔杖。
    • 函数中使用的表的索引?
    • 我可以将输出线分成不同的插槽并提供给函数吗?这可能吗?
    • 如果系统认为这样做有好处,它会自动并行化一个计划。
    猜你喜欢
    • 2011-01-25
    • 2011-01-07
    • 2017-07-16
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多