主库查询正常,dg库查询报ora-600问题

同一个sql语句,主库上查询正常,dg库上查询报ora-600问题,查询语句条件如下,发现where条件随便去掉一个就能正常查询:

where rownum <= 50000 and (ZIFU1 = 'FEIYONG1' AND BINGRENZYID = '123') OR (((SHUZI1 = '1' and BINGRENZYID = '2' and (SANJIKFBZ = 0 OR SANJIKFBZ IS NULL) and (GAOZHIHCBZ = 0 OR GAOZHIHCBZ IS NULL)))

alert日志报错:

DDE: Problem Key 'ORA 600 [qerixGetKey:optdesc]' was flood controlled (0x2) (incident: 1473376)

ORA-00600: 内部错误代码, 参数: [qerixGetKey:optdesc], [1104], [2], [], [], [], [], [], [], [], [], []

按mos上的两个处理均不行:

Bug 32835524 - ORA-600 [qerixgetkey:optdesc] when using USE_CONCAT hint (Doc ID 32835524.8)

ORA-600 [Qerixgetkey:Optdesc] Occurs While Selecting From Tables With Function Based Indexes (Doc ID 461539.1)

select */*+ monitor */去跟踪

select * from gv$sql where sql_text like '%monitor%’;

select * from table(dbms_xplan.display_cursor('04pufx9fk0s2f'));

发现执行计划一致。

比较主备库的解析参数,发现主库增加了几个隐含参数。

调整参数:

alter system set "_optimizer_ads_use_result_cache"=FALSE;

alter system set "_optimizer_dsdir_usage_control"=0;

alter system set "_optimizer_use_feedback"=FALSE;

alter system set optimizer_adaptive_plans=FALSE;

调整完这四个参数,查询恢复正常,由于dg库也是生产在用就没有进一步去确认哪个参数造成。

这几个参数作用分别如下:

_optimizer_ads_use_result_cache:这是12c以上中默认启用,态统统计信息采样的结果缓存,但有一点如果缓存量过大,可能导致"Result Cache: RC Latch"征用。

_optimizer_use_feedback:优化器的基数反馈,这个参数默认是true但不稳定,偶发会造成二次进行查询时,速度很慢。

_optimizer_dsdir_usage_control:官网解释当optimizer_adaptive_features设置为 true时可能会对性能产生巨大的负面影响,特别是对于 RAC 数据库,建议这个设置为0。

optimizer_adaptive_plans:SQL自适应查询优化特性。

在最佳实践优化上,这几个参数都建议禁用掉的。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值