我是靠谱客的博主 强健舞蹈,最近开发中收集的这篇文章主要介绍hint不生效怎么找原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给客户调优,使用pre_push,希望发生谓词推入,但不生效。
去查看sql的10053 trace时,看到客户将优化器版本设置为10.2.0.4.
在自己机器的11.2.0.4版本数据库测试时,hint是生效的;设置成10.2.0.4以后确实不生效。
那怎么找到触发这种改变的罪魁祸首呢:
首先,修改优化器版本后,查看会话值与实例值不同的隐含参数:
这些值发生的变化,肯定是修改优化器版本造成的:


optimizer_features_enable 10.2.0.4 11.2.0.4
_optimizer_null_aware_antijoin FALSE TRUE
_optimizer_extended_cursor_sharing_rel NONE SIMPLE
_optimizer_adaptive_cursor_sharing FALSE TRUE
_optimizer_undo_cost_change 10.2.0.4 11.2.0.4
_nlj_batching_enabled 0 1
_optimizer_extend_jppd_view_types FALSE TRUE
_optimizer_connect_by_elim_dups FALSE TRUE
......

发现与谓词推入相关的参数,然后会话级别修改这些不同的参数为默认值。最终定位到_optimizer_interleave_jppd这个参数。

最后

以上就是强健舞蹈为你收集整理的hint不生效怎么找原因的全部内容,希望文章能够帮你解决hint不生效怎么找原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部