问题描述
_MAX_CR_ROLLBACKS隐含参数的作用,以及使用场景。
--查看_MAX_CR_ROLLBACKS隐藏参数 --当前环境为11.2.0.3 SQL> set pagesize 2000 SQL> col name for a50 SQL> col description for a100 SQL> col value for a10 SQL> SELECT i.ksppinm name, 2 i.ksppdesc description, 3 CV.ksppstvl VALUE, 4 CV.ksppstdf isdefault, 5 DECODE (BITAND (CV.ksppstvf, 7), 6 1, 'MODIFIED', 7 4, 'SYSTEM_MOD', 8 'FALSE') 9 ismodified, 10 DECODE (BITAND (CV.ksppstvf, 2), 2, 'TRUE', 'FALSE') isadjusted 11 FROM sys.x$ksppi i, sys.x$ksppcv CV 12 WHERE i.inst_id = USERENV ('Instance') 13 AND CV.inst_id = USERENV ('Instance') 14 AND i.indx = CV.indx 15 AND i.ksppinm=lower('_MAX_CR_ROLLBACKS') ; NAME DESCRIPTION VALUE ISDEFAULT ISMODIFIED ISADJ -------------------------------------------------- ---------------------------------------------------------------------------------------------------- ---------- --------- ---------- ----- _max_cr_rollbacks Maximum number of CR rollbacks per block (LMS) 0 TRUE FALSE FALSE --10.2.0.4 SQL> set pagesize 2000 SQL> col name for a50 SQL> col value for a10 SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE 2 FROM SYS.x$ksppi x, SYS.x$ksppcv y 3 where x.indx = y.indx 4 AND x.ksppinm =lower('_MAX_CR_ROLLBACKS'); no rows selected --11.2.0.4 SQL> set pagesize 2000 SQL> col name for a50 SQL> col value for a10 SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE 2 FROM SYS.x$ksppi x, SYS.x$ksppcv y 3 where x.indx = y.indx 4 AND x.ksppinm =lower('_MAX_CR_ROLLBACKS'); NAME VALUE -------------------------------------------------- ---------- _max_cr_rollbacks 1000 --12.1.0.2 SQL> set pagesize 2000 SQL> col name for a50 SQL> col value for a10 SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE 2 FROM SYS.x$ksppi x, SYS.x$ksppcv y 3 where x.indx = y.indx 4 AND x.ksppinm =lower('_MAX_CR_ROLLBACKS'); NAME VALUE -------------------------------------------------- ---------- _max_cr_rollbacks 1000 --18c SQL> set pagesize 2000 SQL> col name for a50 SQL> col value for a10 SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE 2 FROM SYS.x$ksppi x, SYS.x$ksppcv y 3 where x.indx = y.indx 4 AND x.ksppinm =lower('_MAX_CR_ROLLBACKS'); NAME VALUE -------------------------------------------------- ---------- _max_cr_rollbacks 1000
专家解答
_max_cr_rollbacks用于控制大量并发更新导致CR读的构造次数,以减少LMS的压力。在10.2.0.4没有该隐藏参数。11.2.0.3中_max_cr_rollbacks的默认值是0,也就是CR读没有上限,在11.2.0.4,12.1.0.2,18c中,_max_cr_rollbacks的默认值是1000。
在11.2.0.3以前没有该参数,在11.2.0.3和11.2.0.4中_max_cr_rollbacks 默认值为0,在11.2.0.4后默认值为1000。
为了缓解cr读的构造和减少LMS的压力,建议降低该值,不需要重启实例。参考命令:
alter system set "_MAX_CR_ROLLBACKS"=200 scope=spfile sid='*';
最后修改时间:2019-04-14 10:49:47
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。