নিম্নলিখিত কোয়েরি বিবেচনা করুন:
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 নিম্নলিখিত আউটপুট দেয়:
সারণী 'প্যারামিটারটাইপ'। স্ক্যান কাউন্ট 0, লজিকাল রিডস 2, ফিজিকাল রিড 0, রিড-ফরোয়ার্ড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল রিড 0, লব রিড-ফরোয়ার্ড 0
টেবিল 'এরিয়া' ' স্ক্যান গণনা 0, লজিকাল রিডস 2, ফিজিকাল রিডস 0, রিড-ফরোয়ার্ড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল রিড 0, লব রিড-ফরোয়ার্ড 0
টেবিল 'প্যারামিটার'। স্ক্যান কাউন্ট 1, লজিকাল রিডস 4, ফিজিকাল রিড 0, রিড-ফরোয়ার্ড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল রিড 0, লব রিড-
ফরোয়ার্ড 0 টেবিল 'ওয়ার্কটেবল'। স্ক্যান কাউন্ট 1, লজিকাল রিড 0, ফিজিকাল রিড 0, রিড-ফরোডড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল 0, লব রিড-ফরোয়ার্ড 0
ওয়ার্কটেবল বার্তাগুলি ট্যাবে উপস্থিত হয় যা আমাকে ভাবায় যে টেম্পডিবি ব্যবহার করছে MERGE।
আমি এক্সিকিউশন পরিকল্পনায় এমন কোনও কিছুই দেখছি না যা টেম্পডিবির প্রয়োজন বোঝায়
না MERGEসবসময় tempdb ব্যবহার করবেন?
বিওএল-তে এমন কিছু আছে যা এই আচরণটি ব্যাখ্যা করে?
এই পরিস্থিতিতে ব্যবহার INSERTএবং UPDATEদ্রুত হতে হবে?
বাম

অধিকার

এখানে টেবিল কাঠামো

tempdb। এটি একটি একক সারির জন্য যদিও এটি দেখতে অদ্ভুত বলে মনে হচ্ছে। আমার ধারণা হ্যালোইন সুরক্ষার জন্য এটি সেখানে থাকতে পারে।