A sargable способ записи этого предиката - ie, поэтому SQL Сервер может использовать индекс в столбце e.received_date
, это будет:
where e.received_date > dateadd(day, -14, getdate())
С в этой конструкции нет выражения, которое необходимо вычислить для данных в столбце полученная_дата, а правая часть вычисляет постоянное выражение.
Если вы поместите столбец в выражение, например datediff(day, e.received_date, getdate())
, тогда SQL сервер должен оценить каждую строку в таблице, прежде чем сможет определить, меньше ли она 14. Это исключает использование индекса.
Таким образом, практически не должно быть значительной разницы между две конструкции, которые у вас есть в настоящее время, в том смысле, что обе будут намного медленнее, чем предикат sargable, особенно если есть индекс в столбце received_date
.