У нас есть запрос, запущенный нашей командой разработчиков, который требует значительных ресурсов и, глядя на план объяснения, похоже, что он использует один и тот же набор данных несколько раз.Есть ли в любом случае, мы можем переписать этот запрос.
Теперь я попытался заменить связанный запрос прямым соединением, но все же несколько связанных запросов выглядят одинаково, за исключением одного незначительного различия.
select tb2.mktg_id, mktg_cd , count(distinct tb2.conf_id)
from
(select conf_id, count(distinct c.mktg_id) as num_cpg
from acc_latst c, off_latst ot
where c.mktg_id = ot.mktg_id and c.bus_eff_dt > '2019-01-01' and to_date(strt_tms) = '2019-01-10'
group by conf_id
having count(distinct c.mktg_id) >1
)tb1,
(select distinct conf_id, c.mktg_id, mktg_cd
from acc_latst c, off_latst ot
where c.mktg_id = ot.mktg_id and c.bus_eff_dt > '2019-01-01' and to_date(strt_tms) = '2019-01-10'
)tb2
where tb1.conf_id = tb2.conf_id group by tb2.mktg_id, mktg_cd