想象一下,我在存储过程的顶部有一大堆初始化代码,其中包含许多变量赋值:
SET @proc = 'sp_madeupname'
SET @magic_number = 42
SET @tomorrows_date = DATEADD(dd, 1, GETDATE())
...
显然,将所有上述操作作为一个SELECT会更快:
SELECT
@proc = 'sp_madeupname'
,@magic_number = 42
,@tomorrows_date = DATEADD(dd, 1, GETDATE())
...
但多少更快?假设这个存储过程是作为循环的一部分执行了几千次,是否会对性能产生任何显着影响?
答案 0 :(得分:3)
答案 1 :(得分:0)
我已经考虑过但从未测试过它。
根据我的经验,优化器非常好,所以我认为它没有任何区别,但如果您认为它确实有用,我会进行一些测试。
我认为从维护的角度来看,进行多项任务可能很有用,如果你想要一些事情应该总是一起完成,不要用剪切和粘贴或重构来分解。
出于同样的原因,相对模块化的代码可以从单独的初始化中受益,因为在维护期间更容易将其剪切并粘贴到重构器上。