Ваше предложение LIKE
содержит совпадение с подстановочным знаком в начале строки:
LIKE '%office%'
Это не позволяет SQL Server использовать индекс для этого столбца, следовательно, медленный запрос. В идеале вы должны изменить свой запрос, чтобы в предложении LIKE
не использовался подстановочный знак в начале.
В случае, когда предложение WHERE
содержит AND
, его запрос сначала основан на предложении Filename
(он может использовать индекс здесь, и это относительно быстро), а затем фильтрует этот сокращенный набор строк на основе по вашему productname0
предложению. Однако, когда вы используете OR
, он не ограничивается просто возвратом строк, которые соответствуют вашему предложению Filename
, и поэтому он должен выполнить поиск по всей таблице, проверяя, соответствует ли каждое поле productname0
.