先来看下Oracle中初始化参数的分类:
1、按照得出方式不同,可以分为推导参数、操作系统依赖参数、可变参数。
推导参数由其他参数推导得出,通常不需要修改。如果强制修改,那么修改值会覆盖推导值。
如session=(1.1*processes)+5
操作系统依赖参数的有效值或取值范围依赖或受限于OS,如db_cache_size,该参数的最大值受限于物理内存
可变参数:可以调整
2、按照修改方式可以分为静态参数,动态参数
静态只能在参数文件中修改,在重启后生效;动态参数可以动态调整,调整后立即生效。
3、按照获取方式不同可以分为显示参数和隐含参数
通常我们查参数通过show parameter 或v$parameter试图得到,实际上show parameter就是从v$parameter中查询得到。而v$parameter试图过滤掉了"_"开头的参数,即隐含参数。因此当我们使用show parameter ‘_开头的参数’ 时,通常没有记录出现。
通过学习发现可以使用以下语句访问到Oracle 底层的table(需用sys登录),得到隐含参数
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.indx = y.indx and
  x.ksppinm = '_kgl_large_heap_warning_threshold';   
      紫色表示要查询的参数名

2008-6-23
今天发现并不是所有的隐含参数都不能通过show parameter查出来,像上面这个参数使用 show parameter "_kgl_large_heap_warning_threshold" 也可以直接查出;或者show parameter large 也可以。看来v$parameters 并没有过滤掉所有的隐含参数。

posted on 2008-06-18 11:45  Alex.Zhang  阅读(310)  评论(0编辑  收藏  举报