SQL多版本,自由表过期设置

 

Oracle SQL 多版本控制

 

 

在上一期的"恩墨讲堂"微信课中,我提到了一个控制SQL多版本的参数,有很多朋友讨论,这个参数是:_CURSOR_OBSOLETE_THRESHOLD 。

为什么会有这个参数呢?请看下面这个示意图,这是一个真实的生产环境,第一个SQL显示,其Version Count已经达到了26万个,这不仅仅占用了内存,而且会使得SQL解析延迟:

Oracle SQL 多版本控制
对于版本过多的SQL,一次软解析甚至不如重新执行一次硬解析来的高效,所以Oracle引入了一系列的控制手段来处理这些特殊的游标。

在11.2.0.3之后,这些解决方案最终形成了一个隐含参数,也就是 _CURSOR_OBSOLETE_THRESHOLD,其作用是当SQL版本超过这个参数设定后,直接舍弃这个游标,重新解析,重头开始。在这一版本之前,通过补丁和参数("_cursor_features_enabled" 和 event 106001)可以达成类似的效果。

相关文章:

  • 2021-04-08
  • 2022-01-09
  • 2021-11-30
  • 2021-10-16
  • 2021-07-24
猜你喜欢
  • 2022-12-23
  • 2021-09-29
  • 2021-06-30
  • 2022-01-20
  • 2021-08-16
  • 2022-12-23
  • 2021-05-02
相关资源
相似解决方案