У меня следующий запрос, где Date
имеет тип данных non-nullable date-time
, GroupingId
имеет тип данных non-nullable int
, а IsCompleted
имеет тип данных non-nullable tinyint(1)
.
SELECT
*
FROM
Table
WHERE
Date < @TimeNow
AND
GroupingId = @GroupingId
AND
IsCompleted = 0;
У меня есть индекс для этой таблицы GroupingId
, Date
, IsCompleted
в этом порядке.
По какой-то причине, если я запускаю этот запрос с t.IsCompleted = 0
, он выполняется намного медленнее, чем t.IsCompleted = 1
каждый раз.
Я думаю, что он не может быть эффективно проиндексирован, но мог бы помочь с этим.
EDIT
Я обновил пример запроса, чтобы сделать его более понятным. Когда установлен IsCompleted = 0
, он возвращает намного меньше строк и занимает намного больше времени, чем когда установлен IsCompleted = 1