0

使用 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 列),什么时候会开始滞后?

4

0 回答 0