Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1239619
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

2013年(350)

分类: Oracle

2013-04-25 11:30:19

我们都知道通常查看初始化参数可以使用show parameter,但是对于没有dba权限的用户就无法执行该命令,因此呢提供了一个视图v$system_parameter用来查看当前实例的初始化参数设置,例如:

SQL> select name,value from v$system_parameter p where p.name='sort_area_size';
 
NAME                           VALUE
------------------------------ ------------------------------
sort_area_size                 65536

这个东西平淡无奇,大家都知道,我们今天也不是来看它的,今天的主角是双胞胎的故事,没错,v$system_parameter就有一个双胞胎兄弟,名字也起的很傻,叫v$system_parameter2。

既然说了是双胞胎,这哥俩之间必须非常相像,事实也确实如此,两个视图都是显示实例当前的初始化参数设置,如果要说哥俩间有啥区别的话,细微之处,我们还是能够辨别的出。对于v$system_parameter而言,每个初始化参数会被做为一行记录显示,不管该参数拥有几个值。而v$system_parameter2则不同,如果某个初始化参数拥有多个值,则每个值都会被做为一条记录显示。

举例来说,控制文件通常会有多个,在v$system_parameter中会显示成一行,而在v$system_parameter2中,则每个控制文件显示成一行,例如:

SQL> select name,value from v$system_parameter p where p.name='control_files';
 
NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /data/oradata/test08/control01.ctl, /data/oradata/test08/con
                               trol02.ctl, /data/oradata/test08/control03.ctl
 
SQL> select name,value from v$system_parameter2 p where p.name='control_files';
 
NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /data/oradata/test08/control01.ctl
control_files                  /data/oradata/test08/control02.ctl
control_files                  /data/oradata/test08/control03.ctl

与此类似的还有v$parameter视图。

如果说v$system_parameter显示实例中初始化参数的值,则v$parameter则显示使用于当前session的初始化参数值,例如:
SQL> select name,value from v$parameter p where p.name='sort_area_size';
 
NAME                           VALUE
------------------------------ ------------------------------
sort_area_size                 65536

SQL> alter session set sort_area_size=10240000;
 
Session altered

SQL> select name,value from v$parameter p where p.name='sort_area_size';
 
NAME                           VALUE
------------------------------ ------------------------------
sort_area_size                 10240000
 
SQL> select name,value from v$system_parameter p where p.name='sort_area_size';
 
NAME                           VALUE
------------------------------ ------------------------------
sort_area_size                 65536

如上,由于alter session只作用于当前session,因此查询v$system_parameter视图发现没有任何变化,而v$parameter视图中的值则已经更新。

v$parameter也有一个双胞胎兄弟,名字也一样傻:v$parameter2。这哥俩之间的区别与v$system_parameter和v$system_parameter2一样,这里就不做示例演示了。

 


阅读(943) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~