Условия и план проведенного мной теста:
1. Создаем тестовую табличку Trans из двух полей: Id и Name.
2. На табличке создаем неуникальный индекс по полю Id, который делаем кластерным.
3. Создаем джобик, который в цикле наполняет эту таблицу значениями. У меня был такой: внешний цикл i от 1 до 40 000, внутренний цикл j от 1 до 12. Во внутреннем цикле вставляются записи в табличку из пункта 1 (Id = strfmt('%1',j)). Джобик рекомендуется запускать на довольно мощном серваке, а то уснуть можно

4. Создаем табличку Params с одним полем Id, На табличке создаем уникальный индекс, который делаем Primary и кластерным. В табличку вводим значения "1", "10", "11", "12".
5. Пишем тестовый джоб. В моем случае было два select'а:
select count(recId) from Trans
exists join Params
where Trans.Id == Params.Id;
select count(recId) from Trans
where Trans.Id like '1*';
Между select'ами смотрим время (я пользовался WinAPI::getTickCount() вместо timeNow(), дает более точное значение ).
6. Джобик запускаем пару раз, что б снизить влияние всякого там кэша. Затем можно поменять select'ы местами, для большей уверености
7. Результатами делимсо тут.
У меня, как я уже писал, exists join "сделал" like более чем в 10 раз