oracle自定义函数性能,【讨论】自定义函数性能问题

各位大牛帮忙看下,怎么优化  ,FUNC_PRODUCT_MATCH_2

FUNC_PRODUCT_MATCH_3

FUNC_PRODUCT_MATCH_4

FUNC_PRODUCT_MATCH_5 是自定义的函数,两个查询表都是全表扫描 ,

INSERT /* +APPEND*/ INTO  DM_PRODUCT_MATCH_RECO NOLOGGING

SELECT

ACCT_MONTH,

AREA_NO,

CITY_NO,

USER_NO,

DEVICE_NUMBER,

USER_DINNER,

USER_TYPE,

USER_DINNER_RECO,

USER_DINNER_DESC,

RENT,

TOTAL_FEE,

MATCH_VALUE_BEFORE,

MATCH_VALUE_CALL,

MATCH_VALUE_FLUX,

MATCH_VALUE_CALLED,

FUNC_PRODUCT_MATCH_5(MATCH_VALUE_CALL,MATCH_VALUE_FLUX,MATCH_VALUE_CALLED) MATCH_VALUE,

CALL_SPILL,

FLUX_SPILL,

CALLED_SPILL

FROM(

SELECT

A.ACCT_MONTH,

A.AREA_NO,

A.CITY_NO,

A.USER_NO,

A.DEVICE_NUMBER,

A.USER_DINNER,

A.USER_TYPE,

B.USER_DINNER USER_DINNER_RECO,

B.USER_DINNER_DESC,

B.RENT,

A.MATCH_VALUE_BEFORE,

A.TOTAL_FEE,

FUNC_PRODUCT_MATCH_2(A.CALL_LOC,A.CALL_LOC_LONG,A.CALL_PRO,A.CALL_COU,

B.CALL_LOC,B.CALL_LOC_LONG,B.CALL_PRO,B.CALL_COU) MATCH_VALUE_CALL,

FUNC_PRODUCT_MATCH_2(0,A.FLUX_LOC,A.FLUX_PRO,A.FLUX_COU,

0,B.FLUX_LOC,B.FLUX_PRO,B.FLUX_COU) MATCH_VALUE_FLUX,

FUNC_PRODUCT_MATCH_3(A.CALLED_LOC,A.CALLED_PRO,A.CALLED_COU,

B.CALLED_LOC,B.CALLED_PRO,B.CALLED_COU,

B.CALLED_LOC_PRI,B.CALLED_PRO_PRI,B.CALLED_COU_PRI) MATCH_VALUE_CALLED,

FUNC_PRODUCT_MATCH_4(A.CALL_LOC,A.CALL_LOC_LONG,A.CALL_PRO,A.CALL_COU,

B.CALL_LOC,B.CALL_LOC_LONG,B.CALL_PRO,B.CALL_COU) CALL_SPILL,

FUNC_PRODUCT_MATCH_4(0,A.FLUX_LOC,A.FLUX_PRO,A.FLUX_COU,

0,B.FLUX_LOC,B.FLUX_PRO,B.FLUX_COU) FLUX_SPILL,

FUNC_PRODUCT_MATCH_4(0,A.CALLED_LOC,A.CALLED_PRO,A.CALLED_COU,

0,B.CALLED_LOC,B.CALLED_PRO,B.CALLED_COU) CALLED_SPILL

FROM  MID_PRODUCT_MATCH_USER_RECO  A,

MID_PRODUCT_DINNER_RECO_1 B

WHERE A.USER_TYPE=B.USER_TYPE

) T;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值