Dovresti fornire i piani esplicativi per valutare meglio perché uno ha prestazioni migliori dell'altro. Ma, in generale, puoi ottenere risultati migliori o almeno più prevedibili per questo tipo di query modificando il IN
condizione a un EXISTS
condizione invece:
select *
from data_table t1
where exists (select null
from id_table t2
where t2.oid = t1.oid
and (other conditions))