Oracle

Oracle如何查看隐含参数

日期:2015-06-28 00:00:00 来源: IT猫扑网

  我们每次从v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的。

  这个我们可以通过查看select * from v$parameter的查询计划得以验证:

  SQL> set autot traceonly;

  SQL> select * from v$parameter;

  已选择288行。

  执行计划

  ----------------------------------------------------------

  Plan hash value: 1128103955

  ------------------------------------------------------------------------------

  | Id  | Operation   | Name     | Rows  | Bytes | Cost (%CPU)| Time     |

  ------------------------------------------------------------------------------

  |   0 | SELECT STATEMENT  |    |     1 |  4414 |     1 (100)| 00:00:01 |

  |*  1 |  HASH JOIN  |    |     1 |  4414 |     1 (100)| 00:00:01 |

  |*  2 |   FIXED TABLE FULL| X$KSPPI  |     1 |   249 |     0   (0)| 00:00:01 |

  |   3 |   FIXED TABLE FULL| X$KSPPCV |   100 |   406K|     0   (0)| 00:00:01 |

  ------------------------------------------------------------------------------

  这两个Fixed Table的各个字段的解释:

  SQL> desc x$ksppi

  名称   是否为空? 类型

  ------------ -------- ---------------

  ADDR      RAW(4)     --内存地址

  INDX      NUMBER     --序号,从0开始

  INST_ID   NUMBER     --instance number

  KSPPINM   VARCHAR2(64)     --参数名称

  KSPPITY   NUMBER     --参数类型 1,'boolean' 2,'string', 3,'number',4,'file

  KSPPDESC  VARCHAR2(64)     --描述

  KSPPIFLG  NUMBER     --标志字段(用来说明是isses_modifiable or issys_modifiable

  SQL> desc x$ksppcv

  名称    是否为空? 类型

  ------------- -------- -------------

  ADDR RAW(4)   --内存地址

  INDX NUMBER   --序号,从0开始

  INST_ID    NUMBER   --instance number

  KSPPSTVL   VARCHAR2(512)  --当前值

  KSPPSTDF   VARCHAR2(9)    --是否为缺省值

  KSPPSTVF   NUMBER   --标志字段,用来说明('Modified' or 'System Modified' or is_adjusted)

  KSPPSTCMNT VARCHAR2(255)  --comment

  由此,就可以通过如下方式查询当前实例的所有隐含参数:

  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

  order by

  translate(x.ksppinm, ' _', ' ')

  /

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消