今天在网上看到一个经典的SQL优化案例,优化思路值得学习和参考,在此做一下自己学习分析的过程,具体SQL如下,该SQL执行需要1分钟的时间,对该SQL进行优化。
select
tpc.policy_id,
tcm.policy_code,
tpf.organ_id,
to_char(tpf.insert_time, 'YYYY-MM-DD') As
insert_time,
tpc.change_id,
d.policy_code,
e.company_name,
f.real_name,
tpf.fee_type,
sum(tpf.pay_balance) as pay_balance,
c.actual_type,
tpc.notice_code,
d.policy_type,
g.mode_name as pay_mode
from
t_policy_change
tpc,
t_contract_master tcm,
t_policy_fee
tpf,
t_fee_type
c,
t_contract_master d,
t_company_customer e,
t_customer
f,
t_pay_mode
g
where tpc.change_id =
tpf.change_id
and tpf.policy_id =
d.policy_id
and tcm.policy_id =
tpc.policy_id
and tpf.receiv_status =
1
and tpf.fee_status =
1
and tpf.payment_id is
null
and tpf.fee_type =
c.type_id
and tpf.pay_mode =
g.mode_id
and d.company_id =
e.company_id(+)
and d.applicant_id =
f.customer_id(+)
and tpf.organ_id
in
(select
organ_id
from t_company_organ