যে প্রশ্নটি অ-সরগাব্য করে তোলে এমন সর্বাধিক সাধারণ জিনিসটি হ'ল ধারাটিতে কোনও ফাংশনের অভ্যন্তরে কোনও ক্ষেত্র অন্তর্ভুক্ত করা :
SELECT ... FROM ...
WHERE Year(myDate) = 2008
এসকিউএল অপ্টিমাইজারটি মাইডেটে কোনও সূচক ব্যবহার করতে পারে না, এমনকি যদি এটি বিদ্যমান থাকে। এটি টেবিলের প্রতিটি সারি জন্য আক্ষরিকভাবে এই ফাংশনটি মূল্যায়ন করতে হবে। ব্যবহার করা আরও ভাল:
WHERE myDate >= '01-01-2008' AND myDate < '01-01-2009'
আরও কয়েকটি উদাহরণ:
Bad: Select ... WHERE isNull(FullName,'Ed Jones') = 'Ed Jones'
Fixed: Select ... WHERE ((FullName = 'Ed Jones') OR (FullName IS NULL))
Bad: Select ... WHERE SUBSTRING(DealerName,4) = 'Ford'
Fixed: Select ... WHERE DealerName Like 'Ford%'
Bad: Select ... WHERE DateDiff(mm,OrderDate,GetDate()) >= 30
Fixed: Select ... WHERE OrderDate < DateAdd(mm,-30,GetDate())