Днес изпитах същия проблем с вътрешно присъединяване. Като създаване на функция с таблични стойности предложено от codechurn или с помощта на Временна таблица предложено от user1935511 или промяна на типове присъединяване предложено от cymorg няма опции за мен, обичам да споделя моето решение.
Използвах Съвети за присъединяване за да насочите оптимизатора на заявките в правилната посока, тъй като проблемът изглежда възниква от стратегия за присъединяване на вложени цикли с отдалечената таблица локално. За мен HASH , ОБЕДИ и ДИСТАНЦИОННО съветите за присъединяване проработиха.
За вас ДИСТАНЦИОННО няма да бъде опция, защото може да се използва само за вътрешни операции за свързване. Така че използването на нещо като следното трябва да работи.
select *
from eopf.Batch b
join eopf.BatchFile bf
on b.BatchID = bf.BatchID
left outer merge join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
on bf.ReferenceID = du.documentUploadID;