Oracle的初始化参数,主要来源于两个内部数据字典表:X$KSPPCV和X$KSPPI通常我们查询的V$Parameter视图或使用show parameter命令都是就来源于这两个表的,但通过这两种方式不能查询隐含参数.

X$KSPPCV用以记录当前的设置的值,及是否使用了缺省值等信息,X$KSPPI则是一个基础表,用于记录参数名、参数说明等简单的信息。需要注意的是INST_ID字段,在Rac环境中用以确定参数所属的实例。

可以使用如下脚本,查询当前实例的隐含参数:

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, ' _', ' ')
/