重複の可能性:
T-SQL での SELECT と SET の速度
SQL Server 2008 R2 を使用しています
私が使うとき
DECLARE @out INT
どちらが速いですか:
SELECT TOP 1 @out = myCol FROM myTable
また
SET @out = (SELECT TOP 1 myCol FROM myTable)
myCol が主キー、インデックス、または通常の列の場合はどうなりますか?
編集:(mark-schultheissのコメントについて)
問題は、遅延の原因を探しているということです。
例えば:
3xSET = (SELECT .. FROM .. WHERE)
は、次のような 3 つの割り当てを持つ 1 つの SELECT よりも遅くなります。
SELECT TOP 1 @out1 = myCol1, @out2 = myCol2, @out3 = myCol3
FROM myHugeTable WHERE myCol4 = 7
ここで、myCol1 は PK、myCol2 は IX、myCol3 は通常の列、myCol4 は一意でないインデックスです。
それで、回避できる遅延を引き起こす既知の問題はありますか?