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