oracle的_OPTIMIZER_IGNORE_HINTS隐含参数

  • 隐含参数_OPTIMIZER_IGNORE_HINTS参数的使用

Oracle推出了一个隐含参数_OPTIMIZER_IGNORE_HINTS,取值为TRUE/FALSE,缺省值是FALSE,也就是说Oracle可以通过将该隐含参数设置为TRUE,使得Oracle优化器忽略语句中所有的Hint。

显然,Oracle提供此参数的目的就是在不修改应用前提下,忽略所有Hint,让Oracle优化器自己来选择执行路径。Oracle也是认为在数据库版本升级之后,原有Hint可能不仅起不到好作用,反而会起到反作用了。Oracle也是认为在新版本下,没有这些Hint,Oracle可能会运行得更好。

如何查询隐藏参数的脚本:

---查询所有的隐藏参数
set linesize 132
column name format a30
column value format a25
select
  x.ksppinm  name,
  y.ksppstvl  value,
  y.ksppstdf  isdefault,
  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE')  ismod,
  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE')  isadj
from
  sys.x$ksppi x,
  sys.x$ksppcv y
where
  x.inst_id = userenv('Instance') and
  y.inst_id = userenv('Instance') and
  x.indx = y.indx and
  x.ksppinm like '%_&par%'
order by
  translate(x.ksppinm, ' _', ' ')
/
--查询某一个隐藏参数的值
SELECT   ksppinm, ksppstvl, ksppdesc  
  FROM   x$ksppi x, x$ksppcv y  
 WHERE   x.indx = y.indx AND  ksppinm = '&yincang';

 

posted @ 2018-06-28 00:33  静心のboke  阅读(591)  评论(0编辑  收藏  举报