前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >修改隐含参数造成SQL性能下降案例之二

修改隐含参数造成SQL性能下降案例之二

作者头像
老虎刘
发布2022-06-22 17:31:23
发布2022-06-22 17:31:23
2310
举报

客户发来这样一条执行时间 1.3小时的SQL 想做优化:

SQL代码:

INSERT INTO HWDW.TW_CI_SIM_RES (

......

)

SELECT ......

FROM HWODS.TO_CI_I91822 S -----大表

,(

SELECT PHONE_NO,TD_PHONE_NO

FROM HWDW.TW_CI_PHONE_TD_INFO-----小表

WHERE STATIS_DATE = :B1

)T

WHERE S.PHONE_NO = T.TD_PHONE_NO(+);

通过SQL Monitor显示的数据发现执行计划不正常:在Estimate-rows估值正常的情况下,hash join的大表做了左表,这种情况一般是相关参数做了改动。

果然,检查发现,_right_outer_hash_enable 隐含参数被改成了false 。如果将参数改回默认的TRUE,预计SQL性能会提升10倍左右。

说明:

如果设置了 _right_outer_hash_enable=false ,那么外关联只能是主表做hash join的左表,而不考虑表的大小,在主表较大,关联表小的情况下,性能会比较差。

这种参数可能在以前的某个版本有bug,客户升级时仍保留了原来设置的值,建议升级时逐一确认各参数,使数据库达到最佳性能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老虎刘谈oracle性能优化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档