查看Oracle隐含参数 Gethidepar

使用下面的SLQ获得Oracle隐含参数:

set linesize 132
column name format a30
column value format a25
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 and
  x.ksppinm like '%_&par%'
order by
  translate(x.ksppinm, ' _', ' ')
/

可以保存为Gethidepar.sql文件,方便之后调用:

F:\awrtmp 的目录
2011/08/15  15:55    <DIR>          .
2011/08/15  15:55    <DIR>          ..
2011/08/15  14:39               881 addmrpt_1_347_349.txt
2011/08/15  15:53               499 Gethidepar.sql
2011/08/15  15:55                19 s.bat
3 个文件          1,399 字节
2 个目录  8,069,201,920 可用字节
SQL> @Gethidepar
输入 par 的值:  callout
原值   14:   x.ksppinm like '%_&par%'
新值   14:   x.ksppinm like '%_callout%'
NAME                           VALUE                     ISDEFAULT ISMOD      ISADJ
------------------------------ ------------------------- --------- ---------- -----
_log_archive_callout                                     TRUE      SYSTEM_MOD FALSE

通过查看SQL执行计划,可以验证Eygle关于参数的说明:

“Oracle数据库的初始化参数,主要来源于两个Oracle内部数据字典表:X$KSPPCV,X$KSPPI

通常我们查询的v$parameter视图就来源于这两个表,只不过隐去了部分参数。”

执行计划

 

SQL> select count(*) from v$parameter;
COUNT(*)
----------
343
 执行计划
----------------------------------------------------------
Plan hash value: 322934900
-------------------------------------------------------------------------------
| Id  | Operation          | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |          |     1 |   113 |     1 (100)| 00:00:01 |
|   1 |  SORT AGGREGATE    |          |     1 |   113 |            |          |
|*  2 |   HASH JOIN        |          |     1 |   113 |     1 (100)| 00:00:01 |
|*  3 |    FIXED TABLE FULL| X$KSPPI  |     1 |    81 |     0   (0)| 00:00:01 |
|   4 |    FIXED TABLE FULL| X$KSPPCV |   100 |  3200 |     0   (0)| 00:00:01 |
-------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("X"."INDX"="Y"."INDX")
filter(TRANSLATE("KSPPINM",'_','#') NOT LIKE '#%' OR
"KSPPSTDF"='FALSE' OR BITAND("KSPPSTVF",5)>0)
3 - filter("X"."INST_ID"=USERENV('INSTANCE') AND
BITAND("KSPPIFLG",268435456)=0 AND TRANSLATE("KSPPINM",'_','#') NOT
LIKE '##%')

 

参考:Eygle《如何获得Oracle的隐含参数

普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress