Запрос ниже занимает 20 секунд.user_table
имеет 40054
записей.other_table
имеет 14000
записей
select count(a.user_id) from user_table a, other_table b
where a.user_id = b.user_id;
наше ограничение состоит в том, что любой запрос, выполняющийся более 8 секунд, будет убит ...> _ <Я выполнил объяснения планов, задавал вопросы здесь, но на основеограничения Я не могу запустить этот запрос менее чем за 8 секунд.Так что я сделал из этого петлю.</p>
begin
FOR i IN role_user_rec.FIRST .. role_user_rec.LAST LOOP
SELECT COUNT (a.user_id) INTO v_into FROM user_table a
WHERE TRIM(role_user_rec(i).user_id) = TRIM(a.user_id);
v_count := v_count + v_into;
END LOOP;
Я знаю, что ограничения - отстой, и это не effecient
способ сделать что-то, но есть ли другой способ заставить этот цикл работать быстрее?