次のクエリを検討してください。
MERGE [Parameter] with (rowlock) AS target
USING (SELECT @AreaId, @ParameterTypeId, @Value)
AS source (AreaId, ParameterTypeId, Value)
ON (target.AreaId = source.AreaId AND
target.ParameterTypeId = source.ParameterTypeId)
WHEN MATCHED THEN
UPDATE SET target.Value = source.Value, @UpdatedId = target.Id
WHEN NOT MATCHED THEN
INSERT ([AreaId], [ParameterTypeId], [Value])
VALUES (source.AreaId, source.ParameterTypeId, source.Value);
統計I / Oは次の出力を提供します。
テーブル 'ParameterType'。スキャンカウント0、論理読み取り2、物理読み取り0、先読み読み取り0、lob論理読み取り0、lob物理読み取り0、lob先読み0。
テーブル「領域」。スキャンカウント0、論理読み取り2、物理読み取り0、先読み読み取り0、lob論理読み取り0、lob物理読み取り0、lob先読み読み取り0。
表「パラメーター」。スキャンカウント1、論理読み取り4、物理読み取り0、先読み読み取り0、lob論理読み取り0、lob物理読み取り0、lob先読み読み取り0。
テーブル 'Worktable'。スキャンカウント1、論理読み取り0、物理読み取り0、先読み読み取り0、lob論理読み取り0、lob物理読み取り0、lob先読み読み取り0
ワークテーブルが[メッセージ]タブに表示され、tempdbが使用されていると思わせますMERGE
。
実行計画にtempdbの必要性を示すものが何も表示されていません
MERGE
いつものtempdbを使うのか?
この動作を説明するBOLには何かありますか?
う使用INSERT
&UPDATE
速く、このような状況であること?
左
正しい
これがテーブル構造です
tempdb
。しかし、それが単一の行にあることは奇妙に思えます。ハロウィーンの保護のためにあるかもしれません。