メインテーブルがかなり大きく、EXISTSの中のテーブルがかなり小さく絞れる場合、EXISTS一つだけであればメインテーブルとの結合に変換されて早くなるが、ORでつなげるとメインテーブルの全件走査になってしまう。
EXISTSを二つORでつなげるならUNIONを使って実現すべき。

EXISTS + OR

AND (
EXISTS (SELECT 1 FROM SMALL_TABLE S WHERE S.KEY = MAIN.PK AND S.COND = /*condition*/'')
OR EXISTS (SELECT 1 FROM SMALL_TABLE2 S2 WHERE S2.KEY = MAIN.PK AND S2.COND = /*condition*/'')
)

UNION

AND EXISTS (SELECT 1 FROM (
    SELECT KEY FROM SMALL_TABLE S WHERE S.KEY = MAIN.PK AND S.COND = /*condition*/''
    UNION
    SELECT KEY FROM SMALL_TABLE2 S2 WHERE S2.KEY = MAIN.PK AND S2.COND = /*condition*/''
    ) U
    WHERE U.KEY = MAIN.PK
)

ただし、メインテーブルにORDER BY PKとLIMITがあり、かつEXISTS句の中がLIKE文のような場合だと、たとえかなり小さく絞れても、PKとLIMITを使用した方がいいと判断されてメインテーブルのPKによる全件走査になってしまうことがある。
(EXISTS句の中でUNIONを使わず1つのSQLだけなら問題ないことも多いが。)
そのような場合は、ヒント句と結合順序で調整した方が良い。