微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查看Oracle中的隐含参数

sqlplus中使用show parameter xx可以查看到Oracle定义的参数,它是通过查询v$parameter获得的. 另外Oracle中还有一些隐含的参数 无法直接通过show parameter的方式查询.

我们查看select * from v$parameter的执行计划

sql> set autotrace 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 |

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

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','SYstem_MOD','FALSE')  ismod,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,' _',' ')

修改隐含参数时,alter system set "parameter_name"=value scope=both sid='*';
有些可以在memory而有些仅仅可以通过spfile更改,尝试一下就知道了
需要注意的是一定要加上双引号,另外引号内不能有空格,只能包含参数的名字

原文地址:https://www.jb51.cc/oracle/213810.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐