eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle RWP性能之旅 PPT教材下载地址 | Blog首页 | 2015 ACOUG中国之旅-福州站活动成功举行 »

SQL多版本控制 - _CURSOR_OBSOLETE_THRESHOLD
modb.pro

SQLCursorV.png

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

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

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

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

Oracle的很多细节控制都是体贴入微的,且用且珍惜吧

关于SQL的多版本,MOS文章 296377.1 非常值得仔细看看。


历史上的今天...
    >> 2014-06-17文章:
    >> 2010-06-17文章:
    >> 2009-06-17文章:
    >> 2004-06-17文章:
           关于数据文件头信息记录

By eygle on 2015-06-17 18:26 | Comments (0) | SQL.PLSQL | 3171 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com