Re: A or null
От: hlt Россия  
Дата: 19.06.19 07:26
Оценка:
MH>Почему для A or null не используется поиск индексу? Ведь результаты для 1 и 2-го варианта одинаковы, я не вижу смысла использовать менее эффектиный план для 1-го варианта.
MH>Это sqlite не додумывается? хотя верится с трудом тк вроде случай тривиальный и элеменировать несущественную константу не трудно..
MH>Скорее всего есть какой-то нюанс который мне непонятен, но какой?
MH>Как в других базах, такая же фигня?

10 лет назад (сейчас я не в курсе) — OR в предикатах мешал использовать индекс в Oracle.
Оптимизатор oracle делал "OR Expansion transformation" — преобразовывал при выполнении запрос таким образом для использования индекса:

SELECT ... WHERE f1=1
UNION
SELECT ... WHERE null

Возможно в твоём случае оптимизатор не вычисляет "or null" на стадии оптимизации, а просто не использует индекс потому что "or", или потому что для "or null" явно не нужен индекс для работы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.