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 行 (および 1 列) であるため、遅延が発生し始めるのはいつでしょうか?

4

0 に答える 0