এটি বিবেচনা করার দুটি ভিন্ন দিক রয়েছে: পারফরম্যান্স এবং রক্ষণাবেক্ষণ / পাঠযোগ্যতা ।
Maintainability / পঠনযোগ্যতার
আমি একটি পৃথক ক্যোয়ারী বেছে নিয়েছি কারণ এটি এমন কিছু যা আমি মনে করি যে আপনি পোস্ট করেছেন এমন মূল ক্যোয়ারীর চেয়ে ভাল / খারাপ উদাহরণ।
আপনার কাছে কি আরও ভাল দেখাচ্ছে এবং আরও পাঠযোগ্য?
select
e.LoginID,
DepartmentName = d.Name
from HumanResources.Employee e
inner join HumanResources.EmployeeDepartmentHistory edh
on e.BusinessEntityID = edh.BusinessEntityID
inner join HumanResources.Department d
on edh.DepartmentID = d.DepartmentID
where d.Name = 'Engineering';
অথবা ...
select
e.LoginID,
DepartmentName = d.Name
from HumanResources.Employee e,
HumanResources.EmployeeDepartmentHistory edh,
HumanResources.Department d
where e.BusinessEntityID = edh.BusinessEntityID
and edh.DepartmentID = d.DepartmentID
and d.Name = 'Engineering';
আমার ব্যক্তিগতভাবে, প্রথমটি বেশ পাঠযোগ্য। আপনি দেখতে পাচ্ছেন যে আমরা টেবিলগুলিতে যোগ দিচ্ছি INNER JOIN
, যার অর্থ আমরা পরবর্তী সারণির সাথে মেলে এমন সারিগুলি টানছি (অর্থাত্ "BusinessEntityID এ কর্মচারীদের সাথে কর্মচারীতে যোগদান করুন এবং সেই সারিগুলি অন্তর্ভুক্ত করুন")।
পরেরটি, কমা আমার কাছে কিছুই বোঝায় না। এটি আমাকে অবাক করে দেয় যে আপনি এই সমস্ত WHERE
ধারাটির পূর্বাভাস দিয়ে কী করছেন ।
প্রাক্তনটি আরও পড়েন যেমন আমার মস্তিষ্ক চিন্তা করে। আমি প্রতিদিন সারাদিন এসকিউএল দেখি এবং কমাগুলিতে যোগ দেয়। যা আমাকে আমার পরবর্তী পয়েন্টে নিয়ে যায় ...
এই ধরণের প্রশ্নগুলি কাজের জন্য "যোগ দেয়" নামে পরিচিত হওয়ার অন্যান্য উপায় রয়েছে
তারা সবাই যোগ দেয়। এমনকি কমাগুলিও একটি যোগদান। লেখক তাদের সত্যিকারের পতন বলে না এই সত্যটি .... এটি সুস্পষ্ট নয়। এটা সুস্পষ্ট হওয়া উচিত। আপনি সুনির্দিষ্ট ডেটাতে যোগদান করছেন, আপনি নির্দিষ্ট করুন JOIN
বা না কেন ,
।
কর্মক্ষমতা
এটি অবশ্যই স্পষ্টভাবে আরডিবিএমএস-নির্ভর হতে চলেছে। আমি কেবল মাইক্রোসফ্ট এসকিউএল সার্ভারের পক্ষে কথা বলতে পারি। পারফরম্যান্স-ভিত্তিতে এগুলি সমতুল্য। তুমি কিভাবে জান? সম্পাদন-পরবর্তী পরিকল্পনাগুলি ক্যাপচার করুন এবং দেখুন এসকিউএল সার্ভার এই বিবৃতিগুলির প্রত্যেকটির জন্য ঠিক কী করছে:
উপরের ছবিতে, আমি হাইলাইট যে আমি উভয় প্রশ্নের উপরে হিসেবে ব্যবহার করছি, স্পষ্ট অক্ষর শুধুমাত্র বিভিন্নমুখী যোগদানের জন্য ( JOIN
বনাম ,
)। এসকিউএল সার্ভার ঠিক একই জিনিস করে।
সারাংশ
কমা ব্যবহার করবেন না। স্পষ্ট JOIN
বিবৃতি ব্যবহার করুন ।