开发者社区 > 数据库 > 数据仓库 > 正文

报错这个,什么情况?

PBO failed, please switch back to ordinary optimizer by setting /+PATTERN_BASED_OPTIMIZER=false/报错这个,什么情况?

展开
收起
冰激凌甜筒 2023-04-04 19:28:48 482 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云云原生数据仓库AnalyticDB中,PBO是指基于模式的优化器(Pattern-Based Optimizer),它主要是通过分析查询中的模式来生成查询计划,以提高查询性能。但是,在某些情况下,基于模式的优化器可能会出现故障,从而导致查询失败。

    当在AnalyticDB中使用PBO进行查询时,如果出现了PBO failed的错误提示,那么可能是由基于模式的优化器出现了故障所引起的。为了解决这个问题,可以尝试切换回常规的优化器,并关闭PBO。

    2023-04-25 17:54:42
    赞同 展开评论 打赏
  • 热爱开发

    这个错误是Oracle数据库中的一个常见问题,它表示PBO(基于模式的优化器)在执行查询时出现了错误。PBO是Oracle 12c引入的一种新型优化器,旨在通过深入分析查询语句的语义、数据统计信息等,为查询提供更好的执行计划。

    如果您遇到了这个错误,请尝试按照错误信息中提供的指导,将PBO禁用并切换回传统的优化器。具体方法是在Oracle会话中设置PATTERN_BASED_OPTIMIZER参数为false,如下所示:

    ALTER SESSION SET "_optimizer_use_feedback" = false; ALTER SESSION SET OPTIMIZER_FEATURES_ENABLE='11.2.0.4'; ALTER SESSION SET PATTERN_BASED_OPTIMIZER=false; 这将禁用PBO并将查询优化器切换回常规模式。请注意,这只是一种解决此特定错误的方法,并不一定适用于所有情况。如果问题持续存在或频繁出现,请考虑与Oracle支持团队联系以获取进一步帮助和指导。

    总之,PBO失败的错误通常意味着Oracle数据库无法使用新的优化器来处理查询。通过禁用PBO并转回传统优化器,可以临时解决该问题,但需要进一步分析原因并采取适当的措施以避免类似问题的再次发生。

    2023-04-10 09:09:27
    赞同 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载