এসকিউএল সার্ভারের কভারগুলির আওতা ব্যতীত অপারেটর কীভাবে কাজ করে তার অভ্যন্তরীণ অ্যালগরিদম কী ? এটি অভ্যন্তরীণভাবে প্রতিটি সারির একটি হ্যাশ নেয় এবং তুলনা করে?
ডেভিড লোজিংসি একটি গবেষণা চালিয়েছেন, এসকিউএল: নতুন রেকর্ডগুলি সন্নিবেশ করার দ্রুততম উপায় যেখানে কোনওটি ইতিমধ্যে বিদ্যমান নেই তিনি দেখিয়েছেন ব্যতীত বৃহত সংখ্যক সারিগুলির পক্ষে দ্রুততম বিবরণ; নীচে আমাদের ফলাফল নিবিড়ভাবে বেঁধে রাখা।
অনুমান: আমি মনে করি বাম যোগদানটি সবচেয়ে দ্রুত হবে, কারণ এটি কেবলমাত্র 1 টি কলামের তুলনা করে, তবে এটি সমস্ত কলামগুলির তুলনা করার কারণে সবচেয়ে দীর্ঘ সময় নেয়।
এই ফলাফলগুলির সাথে, এখন আমাদের চিন্তাভাবনা স্বয়ংক্রিয়ভাবে ব্যতীত এবং অভ্যন্তরীণভাবে প্রতিটি সারির একটি হ্যাশ লাগে? আমি কার্যনির্বাহী পরিকল্পনা ব্যতীত দেখেছি এবং এটি কিছু হ্যাশ ব্যবহার করে।
পটভূমি: আমাদের দল দুটি হিপ টেবিলের তুলনা করছিল। সারণি A সারিগুলি সারণি বিতে নেই, সারণি বিতে সন্নিবেশ করা হয়েছিল
হ্যাপ টেবিলগুলিতে (লিগ্যাসি টেক্সট ফাইল সিস্টেম থেকে) প্রাথমিক কী / গাইড / সনাক্তকারী নেই। কিছু টেবিলের সদৃশ সারি ছিল, সুতরাং আমরা প্রতিটি সারির হ্যাশ পেয়েছি এবং নকলগুলি সরিয়েছি এবং প্রাথমিক কী সনাক্তকারী তৈরি করেছি।
1) প্রথমে আমরা (হ্যাশ কলাম) বাদ দিয়ে বিবৃতি ব্যতীত চালিয়েছিলাম
select * from TableA
Except
Select * from TableB,
2) তারপরে আমরা হ্যাশরওআইডিতে দুটি টেবিলের মধ্যে তুলনা করে একটি বাম জোড়ায় ছুটে এসেছি
select *
FROM dbo.TableA A
left join dbo.TableB B
on A.RowHash = B.RowHash
where B.Hash is null
আশ্চর্যজনকভাবে ব্যতীত বিবৃতি সন্নিবেশটি দ্রুততম ছিল।
ডেভিড লোজিংসির ফলাফল পরীক্ষার ফলাফলের নিকটে প্রকৃত মানচিত্র