Я бы ожидал, что предикат OR будет работать хуже, независимо от того, какая СУБД, на самом деле:
Оптимизированная операция JOIN будет - по крайней мере обычно - полагаться на физический дизайн (индексы в других базах данных, проектирование проекций в Vertica), который может поддерживать это соединение - хотя бы частично.
Но это выходит из окна, как только вы применяете какое-либо выражение к любой из функций объединения перед сравнением - и это включает CAST, функции, математические операции и, в этом отношении, логические операции, такие как OR.
До сих пор я не обнаружил какой-либо ситуации с операциями над операндами соединения до применения сравнения, когда риск спутать оптимизатор с выбором еще худшего плана не слишком высок.
Следовательно, я бы ожидал, что оптимизатор выберет неоптимальный план ...
@ Hanmyo - вы можете найти способ выполнить объяснение по запросу, который вы намереваетесь - один раз, один раз без ИЛИ в предикате, чтобы мы могли проиллюстрировать различия?
Приветствия - Марко