您的位置:首页 > 数据库 > Oracle

如何查询oracle隐藏参数

2013-11-07 09:59 483 查看
    在sqlplus中使用show parameter xx可以查看到Oracle定义的参数, 它是通过查询v$parameter获得的. 另外Oracle中还有一些隐含的参数是无法直接通过show parameter的方式查询.下面首先我们来看一下v$parameter视图是通过哪些基表形成的。
SQL> set autotrace traceonly;
SQL> select * from v$parameter;
347 rows selected.

Execution Plan
----------------------------------------------------------
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

    查看隐含参数的sql:

select a.ksppinm  parameter,
a.ksppdesc description,
b.ksppstvl session_value,
c.ksppstvl instance_value
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx
and a.indx = c.indx
and substr(a.ksppinm, 1, 1) = '_'
order by a.ksppinm;


    修改隐含参数时, alter system set "parameter_name"=value scope=both sid='*';需要注意的是一定要加上双引号, 引号内不能有空格, 只能包含参数的名字。在修改隐含参数的时候,一定要小心谨慎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle隐藏参数