使用 1 行表而不是局部变量是否会显着降低性能或产生其他不利影响?
代替:
Declare @DT date = getdate()
利用:
Select convert(date, getdate()) as DT into #DT
我想这样做的原因是为了代码测试。当我只想运行一段代码时,如果代码在 100 行以下但需要我的几个声明才能运行,这很烦人。
代替:
Line 104 select
Line 105 somecolumn
Line 106 where datadate = @DT
-- MUST DECLARE SCALAR @DT, EVEN THOUGH LINES 1-103 WERE PREVIOUSLY RUN
利用:
Line 104 select
Line 105 somecolumn
Line 106 where datadate = (select DT from #DT)
-- NO ISSUE EXECUTING ONLY THESE 3 LINES, SINCE LINES 1-103 WERE PREVIOUSLY RUN
我只需要知道这在执行时间和准确性方面是否相同。我知道子查询会一遍又一遍地运行,但是由于 #DT 是单行(和 1 列),什么时候会开始滞后?