存储过程和函数之间有什么区别。
每当有更多输入时,输出参数就会用于存储过程。如果它只是一个,我将去寻找功能。
除此之外,如果我使用更多存储过程,是否存在任何性能问题?我很担心,因为我的项目中有近50个存储过程。
他们在概念上有何不同。
提前致谢!
EDITED: -
当我在存储过程和函数中执行计算时,我发现在存储过程中它需要0.15秒,而在函数中它需要0.45秒。
令人惊讶的是,函数比存储过程花费的时间更多。可能功能是值得的可重用性。
内联函数的执行速度比执行程序快。我认为,这是因为多选功能不能使用statastics,这会降低它们的速度,但内联表值函数可以使用统计信息。
答案 0 :(得分:2)
SQL Server中存储过程和函数之间的区别......
http://www.dotnetspider.com/resources/18920-Difference-between-Stored-Procedure-Functions.aspx
存储过程与用户定义函数[UDF]
之间的区别http://www.go4expert.com/forums/showthread.php?t=329
存储过程与功能
http://searchsqlserver.techtarget.com/tip/Stored-procedures-vs-functions
存储过程和函数之间有什么区别...
http://www.allinterview.com/showanswers/28431.html
存储过程和函数之间的区别
答案 1 :(得分:1)
要在使用其中一个之间做出决定,请记住它们之间的根本区别:存储过程旨在将其输出返回给应用程序。 UDF返回表变量,而SPROC不能返回表变量,尽管它可以创建表。它们之间的另一个显着差异是UDF无法改变服务器环境或操作系统环境,而SPROC则可以。在操作上,当T-SQL遇到错误时函数停止,而T-SQL将忽略SPROC中的错误并继续执行代码中的下一个语句(前提是您已包含错误处理支持)。您还会发现虽然可以在XML FOR子句中使用SPROC,但UDF不能。
如果您的操作(例如带有FROM子句的查询)需要从表或表集中绘制行集,那么函数将是您的合适选择。但是,当您想在应用程序中使用相同的行集时,更好的选择是存储过程。
关于UDF与SPROC的性能优势存在相当多的争议。您可能会认为存储过程会给您的服务器增加比UDF更多的开销。根据您编写代码的方式以及您正在处理的数据类型,可能不是这种情况。通过在它们上面尝试两种类型的方法,在重要或耗时的操作中发布数据总是一个好主意。