सबसे सामान्य बात जो एक प्रश्न को गैर-सारगर्भित बना देगी, वह यह है कि किसी फ़ंक्शन के अंदर फ़ील्ड को उस खंड में शामिल करना है:
SELECT ... FROM ...
WHERE Year(myDate) = 2008
SQL ऑप्टिमाइज़र myDate पर एक इंडेक्स का उपयोग नहीं कर सकता है, भले ही कोई मौजूद हो। यह शाब्दिक रूप से तालिका की प्रत्येक पंक्ति के लिए इस फ़ंक्शन का मूल्यांकन करना होगा। उपयोग करने के लिए बेहतर है:
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())