explain plan for SELECT A.*
FROM (SELECT /*+ use_hash(cd cv)*/ CD.*,
nvl(CV.SUM_CI_BALANCE, 0) as SUM_CI_BALANCE,
nvl(CV.SUM_LN_BALANCE, 0) as SUM_LN_BALANCE
FROM OCRM_F_CI_CUST_DESC CD
left join (
select cust_id,
FR_ID,
sum(CI_BALANCE) as sum_CI_BALANCE,
sum(LN_BALANCE) as sum_LN_BALANCE
from OCRM_F_CI_CUST_VIEW
where 1 = 1
and FR_ID = '15601'
and MGR_ID = '00001'
group by cust_id, FR_ID
union
select cust_id,
hash join 驱动表和被驱动表不一定是全表扫描
最新推荐文章于 2023-08-01 10:42:58 发布
本文通过一个示例查询解释了在Oracle SQL中,即使使用了`use_hash`提示,hash join的驱动表也不一定是全表扫描。查询涉及到多个表的连接操作,包括left join和union all,并在最后进行排序。通过执行计划,可以观察到不同表的访问方式,如INDEX FAST FULL SCAN、HASH JOIN等,展示了驱动表的选择策略。
摘要由CSDN通过智能技术生成