достались в наследство запросы вида
from main.t_svc_correction sc,
main.t_users u,
main.t_svc_ref sr,
main.t_user_type_ref tr,
main.t_gts g
where sc.billing_id >= &bid1
and sc.billing_id <= &bid2
and u.user_id = sc.user_id
and u.user_type_id = tr.user_type_id
and tr.user_type_id not in
(90, 91, 92, 350, 251634094, 3491721179)
and u.dept_id = g.dept_id
and sr.svc_id = sc.svc_id
я легче понимаю в виде
from main.t_svc_correction sc
join main.t_users u on u.user_id = sc.user_id
join main.t_svc_ref sr on sr.svc_id = sc.svc_id
join main.t_user_type_ref tr on tr.user_type_id = u.user_type_id
join main.t_gts g on g.dept_id = u.dept_id
where sc.billing_id >= &bid1
and sc.billing_id <= &bid2
and tr.user_type_id not in (90, 91, 92, 350, 251634094, 3491721179)
переписал все.
Стало выполняться дольше, в среднем на 15-30%
Запрос, приведенный тут, как пример, на почти пол-секунды. 3 против 3.5
отдельно выдранные запросы, вставленные в PL\sql dev, показывают одинаковый план
и тогда тем более не ясно становится.