Если вот такой запрос тупит:
SELECT ... WHERE Column=X OR AnotherColumn=Y
То вот такой будет летать:SELECT ... WHERE Column=X
UNION ALL
SELECT ... WHERE AnotherColumn=Y
(но помните про дубли)Тут, конечно, не канал про SQL и дазы банных. Но очень хотелось напомнить.
P.S. И вообще. Если у вас взрослая датабаза с дохреллионами записей - старайтесь без "OR" (анлесс у вас хорошо подобраны индексы именно под них). Особенно если этот "OR" относится к разным колонкам. Или вообще к разным таблицам внутри джойна. А если там еще и не простое "A=B", а всякие вычисления и "больше-меньше"... Планировщик не может адекватно оценить estimated rows, а это всегда заканчивается table scan/index scan (вместо index seek).