v$parameter2 与v$system_parameter2、v$spparameter

v$parameter2显示当前session的参数值。
v$system_parameter2显示instance的参数值。
v$spparameter显示spfile中记录的参数值。
1、实例刚启动时参数值情况
session 1:
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE FALSE 16
ISDEFAULT=FALSE: 该参数不是缺省值
ISSES_MODIFIABLE=TRUE: 该参数可用alter session修改
ISSYS_MODIFIABLE=IMMEDIATE: alter system修改后参数立即生效
ISMODIFIED=FALSE: 没在session和instance级别修改过参数值
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE FALSE 16
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 16 TRUE
ISSPECIFIED=TRUE: 在spfile中设置了该参数
实例刚启动,当前session、instance和spfile中的值是一致的。
2、在session2中修改参数值,并分别在两个session中查询结果
session 2:
修改参数
SQL> alter session set db_file_multiblock_read_count=32;
Session altered.

查询参数
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE MODIFIED 32
ISMODIFIED=MODIFIED: 在当前session中修改过参数值
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE FALSE 16
ISMODIFIED=FALSE: 未修改实例的参数值
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 16 TRUE
在session2中查询v$parameter2时,参数值变为32.而v$system_parameter2与v$spparameter值仍为16. 修改在当前session中生效。
session 1:
查询参数
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE FALSE 16
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE FALSE 16
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 16 TRUE
session1的查询结果是三个视图中该参数值均为16. session2中的修改未影响session1.
alter session修改的参数仅在当前session有效,不会影响到其它session.
3、使用alter system修改参数,指定scope为memory.
session 1:
SQL> alter system set db_file_multiblock_read_count=8 scope=memory;
System altered.
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE SYSTEM_MOD 8
ISMODIFIED=SYSTEM_MOD:表示参数是使用alter system修改过的
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE MODIFIED 8
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 16 TRUE
v$parameter2与v$system_parameter2的参数值为8,而v$spparameter的参数值为16.由于alter system修改参数值时指定scope为memory,因此修改仅在实例中生效而未保存至spfile.同时由于该参数属于修改后立即生效(ISSYS_MODIFIABLE=IMMEDIATE),因此当前session中看到的也是8.
session 2:
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE SYSTEM_MOD 8
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE MODIFIED 8
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 16 TRUE
由于该参数值修改后立即生效的,session2当前的参数值也变为8.
对于修改立即生效的参数,使用alter system修改后,当前所有session都会受影响。
4、用alter system修改参数,指定scope为spfile
session 1:
SQL> alter system set db_file_multiblock_read_count=64 scope=spfile;
System altered.
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFIED VALUE
------------------------------ ---------- -------------------- -------------------- ---------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE SYSTEM_MOD 8
SQL> select name,isdefault,isses_modifiable,issys_modifiable,ismodified,value from v$system_parameter2 where name=’db_file_multiblock_read_count’;
NAME ISDEFAULT ISSES_MODIFIABLE ISSYS_MODIFIABLE ISMODIFI VALUE
------------------------------ ---------- -------------------- -------------------- -------- --------------------
db_file_multiblock_read_count FALSE TRUE IMMEDIATE MODIFIED 8
SQL> select name,value,isspecified from v$spparameter where name=’db_file_multiblock_read_count’;
NAME VALUE ISSPECIFIED
------------------------------ -------------------- --------------------
db_file_multiblock_read_count 64 TRUE
如果指定scope为spfile,实例和当前所有session都不受影响。下次重启后修改才生效。
由于sqlplus中的show parameter命令是查询v$parameter视图,因此看到的也是当前session的参数值。
在v$parameter2视图中的ISSES_MODIFIABLE字段为true的表示这个参数可以使用alter session修改;
在v$parameter2视图中的ISSYS_MODIFIABLE字段为immediate和deferred的表示这个参数可以使用alter system命令修改;false表示不能用alter system修改。
在v$parameter视图中的issys_modifiable3个值的含义:
如果是immediate:表示这次对这个参数的修改会在当前所有会话中就"立即"发生作用,即修改立即生效。
如果是deferred:表示这次修改对当前会话不发生作用,在以后打开的会话中起作用,故它有"推迟"影响的效果。修改该参数值时需要使用alter system set...deferred.如果不加deferred关键字则报错ORA-02096: specified initialization parameter is not modifiable with this option
如果是false:表示不能使用alter system命令修改

本文转自
http://space.itpub.net/?uid-228190-action-viewspace-itemid-170180
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值