もちろん、これはほとんどの小さなトランザクションにとって大きな要因ではありませんが、より大きなデータ セットでは、有用なインデックスが配置されていると仮定すると、CASE を使用する代わりに JOIN を使用して INSERT を実行する方が速いでしょうか?
CASE を使用した例(T-SQL 内):
INSERT into Foo
(CarID, CarMake)
(SELECT CarID,
CASE WHEN CarModel = 'Odyssey' THEN 'Honda'
WHEN CarModel = 'Sienna' THEN 'Toyota' END
as CarMake
FROM FooCar)
JOIN を使用した例:
INSERT into Foo
(CarID, CarMakeID)
(SELECT A.CarID, B.CarMake
FROM FooCar as A
JOIN FooMake as B on (A.CarModel = B.CarModel)
)
これら 2 つのステートメントのうち、速度を上げるという目的を満たすのはどれですか? 大きさの点で問題をうまく表していない例のデータ サンプルを見てください。このような別の質問は見つかりませんが、すでに質問して回答する必要があるようです。