Тут видимо надо все же копать в сторону
оптимизации ХП Search, а не приведенного
запроса. Фетчит-то лишнее похоже она.
Для повышения эффективности запроса
можно попробовать ввести в ХП (или
создать еще одну похожую ХП)
дополнительный входной параметр - id
записи, которую нужно проверить на
совпадение условия. Соответственно
если id задан - проверять (и возвращать
по необходимости) нужно только 1 запись
с этим id, иначе - оставить все как
сейчас. Тогда запрос можно будет
попробовать выполнить так:
for
select id
from Search(:val1, null)
into :my_id
do
begin
select id
from Search(:val2, my_id)
into :my_id;
if my_id is not null then
begin
suspend;
exit;
end
end
Конечно выгоднее будет выполняться
если по :val1 выбирается как можно
меньшее число записей, но по-любому
вроде должно так работать быстрее, чем
в исходном варианте.
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---