Из того, что я вижу, есть два разных вопроса.
a) Использование статического списка / таблицы.
Если список элементов (100-200) представляет собой список статических значений, например, например, список стран или валют, яЯ думаю, что было бы лучше добавить это в статическую таблицу / таблицу параметров и изменить запрос на использование таблицы.Если вам нужно отследить новый код / страну и т. Д. Позже, все, что вам нужно сделать позже, это вставить новый код в таблицу поиска.
Кроме того, если есть другие запросы, использующие те же условия (и, как правило, есть), эта справочная таблица будет способствовать повторному использованию.
select * from t1 where id in (select id from t2);
and
select * from t1,t2
where t1.id = t2.id
эквивалентны и лучше, чем
select * from t1 where
id in ('USD','EUR'..... ); -- 100 to 200 items to track.
b) Выбор соединения против IN:
Это действительно не имеет большого значения.Последний запрос, который выполняет oracle, будет преобразованной версией вашего запроса, которая может быть оценена для одного и того же запроса в обоих случаях.
Вы должны увидеть, какой из двух запросов легче читать, и правильно передать намерения.
Полезная ссылка: http://explainextended.com/2009/09/30/in-vs-join-vs-exists-oracle/