查看Oracle中的隐含参数

前端之家收集整理的这篇文章主要介绍了查看Oracle中的隐含参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. sqlplus中使用show parameter xx可以查看到Oracle定义的参数,它是通过查询v$parameter获得的. 另外Oracle中还有一些隐含的参数 无法直接通过show parameter的方式查询.
  2.  
  3. 我们查看select * from v$parameter的执行计划
  4.  
  5. sql> set autotrace traceonly;
  6.  
  7. sql> select * from v$parameter;
  8.  
  9.   已选择288行。
  10.  
  11.   执行计划
  12.  
  13.   ----------------------------------------------------------
  14.  
  15.   Plan hash value: 1128103955
  16.  
  17.   ------------------------------------------------------------------------------
  18.  
  19.   | Id | Operation | Name | Rows | Bytes | Cost (%cpu)| Time |
  20.  
  21.   ------------------------------------------------------------------------------
  22.  
  23.   | 0 | SELECT STATEMENT | | 1 | 4414 | 1 (100)| 00:00:01 |
  24.  
  25.   |* 1 | HASH JOIN | | 1 | 4414 | 1 (100)| 00:00:01 |
  26.  
  27.   |* 2 | FIXED TABLE FULL| X$KSPPI | 1 | 249 | 0 (0)| 00:00:01 |
  28.  
  29.   | 3 | FIXED TABLE FULL| X$KSPPCV | 100 | 406K| 0 (0)| 00:00:01 |
  30.  
  31.   ------------------------------------------------------------------------------
  32.  
  33. sql> desc x$ksppi
  34.  
  35.   名称 是否为空? 类型
  36.  
  37.   ------------ -------- ---------------
  38.  
  39.   ADDR RAW(4) --内存地址
  40.  
  41.   INDX NUMBER --序号,从0开始
  42.  
  43.   INST_ID NUMBER --instance number
  44.  
  45.   KSPPINM VARCHAR2(64) --参数名称
  46.  
  47.   KSPPITY NUMBER --参数类型 1,'boolean' 2,'string',3,'number',4,'file
  48.  
  49.   KSPPDESC VARCHAR2(64) --描述
  50.  
  51.   KSPPIFLG NUMBER --标志字段(用来说明是isses_modifiable or issys_modifiable
  52.  
  53. sql> desc x$ksppcv
  54.  
  55.   名称 是否为空? 类型
  56.  
  57.   ------------- -------- -------------
  58.  
  59.   ADDR RAW(4) --内存地址
  60.  
  61.   INDX NUMBER --序号,从0开始
  62.  
  63.   INST_ID NUMBER --instance number
  64.  
  65.   KSPPSTVL VARCHAR2(512) --当前值
  66.  
  67.   KSPPSTDF VARCHAR2(9) --是否为缺省值
  68.  
  69.   KSPPSTVF NUMBER --标志字段,用来说明('Modified' or 'System Modified' or is_adjusted)
  70.  
  71.   KSPPSTCMNT VARCHAR2(255) --comment
  72.  
  73. 由此,就可以通过如下方式查询当前实例的所有隐含参数:
  74.  
  75. select x.ksppinm name,y.ksppstvl value,y.ksppstdf isdefault,decode(bitand(y.ksppstvf,7),1,'MODIFIED','SYSTEM_MOD','FALSE') ismod,2),2,'TRUE','FALSE') isadj
  76.  
  77. from sys.x$ksppi x,sys.x$ksppcv y where x.inst_id = userenv('Instance') and
  78.  
  79. y.inst_id = userenv('Instance') and x.indx = y.indx order by
  80. translate(x.ksppinm,' _',' ')
  81.  
  82. 修改隐含参数时,alter system set "parameter_name"=value scope=both sid='*';
  83. 有些可以在memory而有些仅仅可以通过spfile更改,尝试一下就知道了
  84. 需要注意的是一定要加上双引号,另外引号内不能有空格,只能包含参数的名字

猜你在找的Oracle相关文章