[转]Oracle各种v$parameter区别

[color=red]原文:[/color][url]http://blog.csdn.net/huang_xw/article/details/6173891[/url]
1 v$parameter
v$parameter显示的是session级的参数. 如果没有使用alter session单独设置当前session的参数值.
每一个新Session都是从 v$system_parameter上取得系统的当前值而产生Session的v$parameter view. (实验1)
在运行过程中, v$parameter可能被用户改变.
2 v$parameter2
v$parameter2显示的是session级的参数.
与v$parameter之间的区别则在于v$parameter2把LIST的值分开来了, 一行变多行数据, 用ORDINAL来指示相对的位置. (实验2)
3 v$system_parameter
v$system_parameter显示的是system级的参数, 保存的是使用alter system修改的值(scope=both或者memory). 上面两个都是当前已经生效的参数值.
4 v$system_parameter2
v$system_parameter2显示的是system级的参数.
5 v$spparameter
v$spparameter显示的就是保存在spfile中的参数值(scope=both或者spfile).
6 字段解释

字段
字段值
说明
isses_modifiable
true
表示这个参数可以使用alter session修改
false
表示不能使用alter session命令修改
issys_modifiable
immediate
表示这次对这个参数的修改会在当前所有会话中就"立即"发生作用, 即修改立即生效.
deferred
表示这次修改对当前会话不发生作用, 在以后打开的会话中起作用, 故它有"推迟"影响的效果. 修改该参数值时需要使用alter system set...deferred. 如果不加deferred关键字则报错ORA-02096: specified initialization parameter is not modifiable with this option.
false
表示不能使用alter system命令修改, 只能alter system ...... scope=spfile
7 show parameter
通过sql_trace发现,sqlplus中的show parameter其实查询的是v$parameter,实际的查询语句如下:
select name name_col_plus_show_param,
decode(type,
1,
'boolean',
2,
'string',
3,
'integer',
4,
'file',
5,
'number',
6,
'big integer',
'unknown') type,
display_value value_col_plus_show_param
from v$parameter
where upper(name) like upper('%db_file%')
order by name_col_plus_show_param, rownum;
8 底层表解释
通过autotrace,可以知道:
v$parameter,v$system_parameter的底层表是x$ksppcv和x$ksppi
v$parameter2,v$system_parameter2的底层表是x$ksppcv2和x$ksppi
v$spparameter的底层表是x$kspspfile
9 实验1
SQL> select t1.value sesvalue, t2.value sysvalue
2 from v$parameter t1, v$system_parameter t2
3 where t1.num = t2.num
4 and t1.value <> t2.value;

SESVALUE SYSVALUE
------------------- -------------------

SQL> select value from v$system_parameter where name = 'global_names';

VALUE
-------------------
FALSE

SQL> select value from v$parameter where name = 'global_names';

VALUE
-------------------
FALSE

SQL> alter session set global_names = true;

Session altered

SQL> select t1.name, t1.value sesvalue, t2.value sysvalue
2 from v$parameter t1, v$system_parameter t2
3 where t1.num = t2.num
4 and t1.value <> t2.value;

NAME SESVALUE SYSVALUE
------------------- ------------------- -------------------
global_names TRUE FALSE
10 实验2
SQL> column value format a106;
SQL> select value from v$parameter where name like 'control_files';

VALUE
----------------------------------------------------------------------------------------------------------
D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL01.CTL, D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL02.CTL,
D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL03.CTL

SQL> column name format a15;
SQL> column value format a53;
SQL> column ordinal format a8;
SQL> select name ,value, ordinal from v$parameter2 where name like 'control_files';

NAME VALUE ORDINAL
--------------- ----------------------------------------------------- --------
control_files D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL01.CTL 1
control_files D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL02.CTL 2
control_files D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL03.CTL 3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值