我们每次从v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的。
这个我们可以通过查看select * from v$parameter的查询计划得以验证:
SQL> set autot 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 |
------------------------------------------------------------------------------
这两个Fixed Table的各个字段的解释:
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, ' _', ' ')
/
关键词标签:Oracle
相关阅读
热门文章
Oracle中使用alter table来增加,删除,修改列的语法
oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例
误删Oracle数据库实例的控制文件
为UNIX服务器设置Oracle全文检索
人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法
查看所有2条评论>>