从SQL Server中的另一个SProc调用SProc的性能影响

时间:2012-11-27 18:26:54

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

从另一个存储过程中调用一个存储过程是否会影响性能?我一直无法找到任何答案。如果它对性能产生负面影响,我认为唯一的选择是将这些程序合并为一个较大的程序。

我知道它会影响Sprocs中调用函数的性能(最好只重新键入SProc中的代码),因为SQL计划查询统计信息的方式,但我想这只适用于函数。

提前致谢!

1 个答案:

答案 0 :(得分:2)

我从未见过存储过程本身调用另一个存储过程的性能问题。

但是,我发现事务远远超过必要的 - 导致严重的性能问题 - 因为开发人员扩展了内部存储过程而没有理解后果。

这是另一个问题示例:有一个“好”的存储过程几乎适用于许多场景,编码器在整个地方使用它。但是,存储过程实际上返回了90%的调用者实际需要的列数的两倍。调用代码未优化。

这就是为什么存储过程应该只有简单的基于集合的逻辑,以及为什么我会使用过程逻辑和对其他存储过程的调用来对付复杂的存储过程。

所以......最好避免恕我直言。