অসীম ধীর ক্যোয়ারির গতি উন্নত করার চেষ্টা করার জন্য ( এসকিউএল সার্ভার ২০০৮-তে প্রতিটি table 50,000 সারি দিয়ে দুটি টেবিলের কয়েক মিনিট ) যদি এটি বিবেচনা করে তবে, আমি OR
আমার অভ্যন্তরীণ যোগদানের ক্ষেত্রে সমস্যাটি সংকুচিত করেছিলাম , যেমন:
SELECT mt.ID, mt.ParentID, ot.MasterID
FROM dbo.MainTable AS mt
INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID
OR ot.ID = mt.ParentID
আমি এটিকে (যা আমি প্রত্যাশা করি) এটিকে এখানে বাম সংখ্যার সমতুল্য জোড় যোগদান করে:
SELECT mt.ID, mt.ParentID,
CASE WHEN ot1.MasterID IS NOT NULL THEN
ot1.MasterID ELSE
ot2.MasterID END AS MasterID
FROM dbo.MainTable AS mt
LEFT JOIN dbo.OtherTable AS ot1 ON ot1.ParentID = mt.ID
LEFT JOIN dbo.OtherTable AS ot2 ON ot2.ID = mt.ParentID
WHERE ot1.MasterID IS NOT NULL OR ot2.MasterID IS NOT NULL
.. এবং ক্যোয়ারী এখন প্রায় এক সেকেন্ডে চলে!
OR
যোগদানের শর্তে যুক্ত করা কি সাধারণত খারাপ ধারণা ? অথবা আমি আমার টেবিলগুলির বিন্যাসে কোনওভাবেই দুর্ভাগ্য?