速度

2008-10-09 87 views
0

想象我的初始化代码块在存储过程的顶部与一些变量赋值:速度

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

我已经想过但从未测试过它。

根据我的经验,优化器非常好,所以我认为它没有区别,但是如果您认为它确实有用,我会运行一些测试。

我认为从维护的角度来看,做多个任务可能是有用的,如果你想要一些事情总是应该一起完成,不能通过剪切和粘贴或重构来分解。

出于同样的原因,相对模块化的代码可以从单独的初始化中受益,因为在维护过程中更容易剪切并粘贴到重构。