Най-често срещаното нещо, което ще направи заявката неподлежаща на саргиране е да включите поле вътре в функция в клаузата where:
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())