SQL性能优化(hint)
select *
from (select rownum as rownum_alias, main_sql.*
from (SELECT /*+ DRIVING_SITE(torihiki,kikan,tantou) */ (SELECT COUNT(1)
FROM T_ORDER T1,
T_ODR_DETAIL T2,
(SELECT TRHKSK_KHN_CD,
TRHKSK_KHN_MI,
SIYU_KIS_NNGPP,
SIYU_TIS_NNGPP
FROM TR_TRHKSK_KHN
WHERE RNR_SKZY_FLG = '0') torihiki,
(SELECT KKCD,
KIKIKKN_RYKSYU,
KIKI_SIYU_KIS_NNGPP,
KIKI_SIYU_TIS_NNGPP
FROM TR_KIKIKKN
WHERE RNR_SKZY_FLG = '0'
AND KIKI_YUT_SYBT = '1') kikan,
(SELECT KTCD,
KKCD,
KIKITNTU_RYKSYU,
KIKI_SIYU_KIS_NNGPP,
KIKI_SIYU_TIS_NNGPP
FROM TR_KIKITNTU
WHERE RNR_SKZY_FLG = '0'
AND KIKI_YUT_SYBT = '1') tantou,
T_STAFF_BOOK_MANAGEMENT T3
WHERE T1.KTYPEDAIKUBUN = '5'
AND torihiki.SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND torihiki.SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND kikan.KIKI_SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND kikan.KIKI_SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND tantou.KIKI_SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND tantou.KIKI_SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND T1.KKEITAICD = '3'
AND T1.CST = '330'
AND T1.RECSTKUBUN IN ('1', '2')
AND LAST_DAY(ADD_MONTHS(TO_DATE(T1.KTO, 'YYYY-MM-DD'), 3)) >=
TO_DATE('20120726', 'YYYY-MM-DD')
AND T1.CNO = T2.CNO
AND T1.CHANSU = T2.CHANSU
AND T2.HKAISHACD = 'Z00000'
AND T2.HSOSHIKICD = tantou.KKCD(+)
AND T2.HBUKACD = tantou.KTCD(+)
AND T2.HSOSHIKICD = kikan.KKCD(+)
AND T1.CNO = T3.CNO(+)
AND T1.CHANSU = T3.CHANSU(+)
AND T1.KDNO = T3.KDNO(+)
AND T1.KHANSU = T3.KHANSU(+)
AND T1.SCD = torihiki.TRHKSK_KHN_CD(+)
AND T2.HSOSHIKICD = '7200'
AND T2.HBUKACD = '001600'
AND (T2.HSEIID = '1KC1H11' OR T2.HFUKUID = '1KC1H11' OR T2.SHIKIID = '1KC1H11' OR
T2.KUJOID = '1KC1H11')) AS TCOUNT,
T1.KDNO,
T1.KHANSU,
T1.CNO,
T1.CHANSU,
T2.TDNO,
T2.CMHANSU,
kikan.KIKIKKN_RYKSYU as KIKIKKN_RYKSYU,
tantou.KIKITNTU_RYKSYU as KIKITNTU_RYKSYU,
T1.KKENMEI as KKENMEI,
T1.KFROM as KFROM,
T1.KTO as KTO,
T1.EXCLUSIVE_COUNTER as EXCLUSIVE_COUNTER,
torihiki.TRHKSK_KHN_MI as TRHKSK_KHN_MI,
T3.HSMEI as HSMEI,
(CASE
WHEN 0 IN (SELECT COUNT(CHOHYOID)
FROM T_REPORT T4
WHERE T1.KDNO = T4.KDNO
AND T1.CNO = T4.CNO
AND T1.CHANSU = T4.CHANSU
AND T2.TDNO = T4.KIHONTDNO
AND T2.CMHANSU = T4.KIHONTDHANSU
AND T4.CHOHYOTYPECD = 'PR08') THEN
0
ELSE
1
END) PDFFLG
FROM T_ORDER T1,
T_ODR_DETAIL T2,
(SELECT TRHKSK_KHN_CD,
TRHKSK_KHN_MI,
SIYU_KIS_NNGPP,
SIYU_TIS_NNGPP
FROM TR_TRHKSK_KHN
WHERE RNR_SKZY_FLG = '0') torihiki,
(SELECT KKCD,
KIKIKKN_RYKSYU,
KIKI_SIYU_KIS_NNGPP,
KIKI_SIYU_TIS_NNGPP
FROM TR_KIKIKKN
WHERE RNR_SKZY_FLG = '0'
AND KIKI_YUT_SYBT = '1') kikan,
(SELECT KTCD,
KKCD,
KIKITNTU_RYKSYU,
KIKI_SIYU_KIS_NNGPP,
KIKI_SIYU_TIS_NNGPP
FROM TR_KIKITNTU
WHERE RNR_SKZY_FLG = '0'
AND KIKI_YUT_SYBT = '1') tantou,
T_STAFF_BOOK_MANAGEMENT T3
WHERE T1.KTYPEDAIKUBUN = '5'
AND torihiki.SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND torihiki.SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND kikan.KIKI_SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND kikan.KIKI_SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND tantou.KIKI_SIYU_KIS_NNGPP(+) <= RPAD('20120726', 8, ' ')
AND tantou.KIKI_SIYU_TIS_NNGPP(+) >= RPAD('20120726', 8, ' ')
AND T1.KKEITAICD = '3'
AND T1.CST = '330'
AND T1.RECSTKUBUN IN ('1', '2')
AND LAST_DAY(ADD_MONTHS(TO_DATE(T1.KTO, 'YYYY-MM-DD'), 3)) >=
TO_DATE('20120726', 'YYYY-MM-DD')
AND T1.CNO = T2.CNO
AND T1.CHANSU = T2.CHANSU
AND T2.HKAISHACD = 'Z00000'
AND T2.HSOSHIKICD = tantou.KKCD(+)
AND T2.HBUKACD = tantou.KTCD(+)
AND T2.HSOSHIKICD = kikan.KKCD(+)
AND T1.CNO = T3.CNO(+)
AND T1.CHANSU = T3.CHANSU(+)
AND T1.KDNO = T3.KDNO(+)
AND T1.KHANSU = T3.KHANSU(+)
AND T1.SCD = torihiki.TRHKSK_KHN_CD(+)
AND T2.HSOSHIKICD = '7200'
AND T2.HBUKACD = '001600'
AND (T2.HSEIID = '1KC1H11' OR T2.HFUKUID = '1KC1H11' OR T2.SHIKIID = '1KC1H11' OR
T2.KUJOID = '1KC1H11')
ORDER BY KDNO DESC) main_sql) rownum_sql
where rownum_sql.rownum_alias >= 1
and rownum_sql.rownum_alias < 101
加上hint后感觉跟没加上一样,貌似hint语句没有起效果,求大神帮助啊!搞了2天了。。
(注:数据量比较大)