Sie müssten die Erklärungspläne bereitstellen, um besser beurteilen zu können, warum einer besser abschneidet als der andere. Aber im Allgemeinen können Sie bessere oder zumindest vorhersagbarere Ergebnisse für diese Art von Abfrage erhalten, indem Sie den IN
ändern Bedingung zu einem EXISTS
Bedingung statt:
select *
from data_table t1
where exists (select null
from id_table t2
where t2.oid = t1.oid
and (other conditions))