select TPS.CD_CHILD_PRODUCT
FROM SCHAGU.T_PRODUCT_STRUCTURE TPS JOIN SCHAGU.T_PRODUCT TP ON TP.CD_PRODUCT = TPS.CD_CHILD_PRODUCT
INNER JOIN SCHAGU.T_PRODUCT_NAME TPN_EN ON TP.ID_PRODUCT = TPN_EN.ID_PRODUCT
AND TPN_EN.CD_LANG = 'en' LEFT OUTER JOIN SCHAGU.T_PRODUCT_NAME TPN_LC ON TP.ID_PRODUCT = TPN_LC.ID_PRODUCT
AND TPN_LC.CD_LANG = 'ja'
where TPS.CD_CHILD_PRODUCT = 'kousei_TEST02'数据量
SCHAGU.T_PRODUCT_STRUCTURE 3200
SCHAGU.T_PRODUCT 140000
SCHAGU.T_PRODUCT_NAME 280000关联条件都是索引。现在执行时间:0.8秒希望高手能给出优化建议。
FROM SCHAGU.T_PRODUCT_STRUCTURE TPS JOIN SCHAGU.T_PRODUCT TP ON TP.CD_PRODUCT = TPS.CD_CHILD_PRODUCT
INNER JOIN SCHAGU.T_PRODUCT_NAME TPN_EN ON TP.ID_PRODUCT = TPN_EN.ID_PRODUCT
AND TPN_EN.CD_LANG = 'en' LEFT OUTER JOIN SCHAGU.T_PRODUCT_NAME TPN_LC ON TP.ID_PRODUCT = TPN_LC.ID_PRODUCT
AND TPN_LC.CD_LANG = 'ja'
where TPS.CD_CHILD_PRODUCT = 'kousei_TEST02'数据量
SCHAGU.T_PRODUCT_STRUCTURE 3200
SCHAGU.T_PRODUCT 140000
SCHAGU.T_PRODUCT_NAME 280000关联条件都是索引。现在执行时间:0.8秒希望高手能给出优化建议。
你写个这SQL的中心表是那就以那个放在第一位,还有ORACLE是右边开始执行,就是缩小最大的放在最后面(where)
FROM SCHAGU.T_PRODUCT_STRUCTURE TPS JOIN SCHAGU.T_PRODUCT TP ON TP.CD_PRODUCT = TPS.CD_CHILD_PRODUCT
INNER JOIN SCHAGU.T_PRODUCT_NAME TPN_EN ON TP.ID_PRODUCT = TPN_EN.ID_PRODUCT
AND TPN_EN.CD_LANG = 'en' LEFT OUTER JOIN SCHAGU.T_PRODUCT_NAME TPN_LC ON TP.ID_PRODUCT = TPN_LC.ID_PRODUCT
AND TPN_LC.CD_LANG = 'ja'
where TPS.CD_CHILD_PRODUCT = 'kousei_TEST02'
固定的where条件最好放在最后当然,具体的sql好不好,还要看具体的执行计划