19c 新特性: Hint Usage Reports详解


640?wx_fmt=jpeg


老张拉呱:thomas zhang,甲骨文云平台事业部资深技术顾问,2008年加入甲骨文公司数据库咨询部门,10+年甲骨文解决方案咨询支持经验,资深系统工程师、Oracle OCM认证专家,具有丰富的Cloud /IT项目经验。目前主要负责甲骨文中国北方区(医院/卫生、交通、制造、教育、政府、证券、媒体、金融、零售等行业)客户的数据库、中间件、IaaS/PaaS、集成系统等相关技术解决方案咨询工作。


签名:我为人人,人人为我,三人行,必有我师

新浪微博: http://weibo.com/tomszrp

Oracle Hints 是 SQL语句中的注释机制,用来传递指令给 Oracle 数据库优化器,告诉优化器按照我们的告诉它的方式 选择执行计划,除非存在某种条件阻止优化器这样做,典型的比如设置了 OPTIMIZER_IGNORE_HINTS、OPTIMIZER_IGNORE_PARALLEL_HINTS 参数或发生了查询转换甚至 Hint 冲突,那么可能会导致 Hint 失效。

 

最早在 Oracle Database 7 中就引入了 Hint,那时候当优化器生成执行计划时,用户几乎没有什么可以求助的资源。不像现在 Oracle 数据库中提供了丰富的优化工具,典型的比如SQL Tuning Advisor、SQL plan management以及SQL Performance Analyzer 等等,从而可以帮助我们解决优化器无法解决的性能问题。


Oracle 建议尽量使用这些辅助的调优工具而不是 Hint,一是这些调优工具比 Hint 更加系统、全面、有效,二是当用了很多 Hint 后,在数据和数据库环境发生变化时,可能带来新的问题,也就是说使用 Hint 可能能带来短期好处,但不会长期持续提高性能。

 

所以,常规的使用 Hint 的场景应该是:当收集了相关的统计信息后,在不用 hints 使用 explain plan 评估了执行计划以后才应该谨慎使用。对于一些不得不用的在实际环境中,也可能经常面临这样的问题:比如语法不正确或 Hint 使用不当,系统不会给我们任何错误提示。所以很多时候可能也就“稀里糊涂”的、一顿“猛药”下去,"病"好了,哈哈。

 

随着 Oracle Database 19c 的发布,优化器有一个新的重要的增强:Hint Usage report,它可以报告 hint 的使用情况,该报告包括所有优化器提示的状态,包括 PARALLEL 和 INMEMORY。


Hint Usage report 会显示使用和忽略了哪些提示,并通常解释为什么忽略提示。忽略提示最常见的原因有语法错误(Syntax errors)、不正确的Hint(Unresolved hints)、冲突(Conflicting hints)、受影响的hint(Hints affected by tr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值