Musiałbyś przedstawić plany wyjaśniania, aby lepiej ocenić, dlaczego jeden działa lepiej niż drugi. Ale ogólnie rzecz biorąc, możesz uzyskać lepsze lub przynajmniej bardziej przewidywalne wyniki dla tego typu zapytania, zmieniając IN
warunek do EXISTS
warunek zamiast tego:
select *
from data_table t1
where exists (select null
from id_table t2
where t2.oid = t1.oid
and (other conditions))