当我们要获取Oracle数据库当前的参数值时,可以通过查询v$parameter动态性能视图得到,当然了也可以使用show parameter p_name这样的方式得到。但是在Oracle 11g以前,show parameter只能获得当前session的参数值,要看其他的参数值,比如系统级别的参数值修改和参数文件spfile中的参数值还是需要使用数据字典。Oracle在11g中做了一些改动,引入了show spparameter p_name命令,可以我们更方便的获取spfile文件中的参数值,显然这只是一个小技巧,但是确实让Oracle更加灵活和方便使用。
SQL> show parameter open_cursors
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 400
我们只是修改参数文件,加上scope=spfile
SQL> alter system set open_cursors=300 scope=spfile;
System altered.
如果要查看参数的值,看当前session的
SQL> show parameter open_cursors
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 400
SQL> desc v$parameter
Name Null? Type
----------------------------------------- -------- ----------------------------
NUM NUMBER
NAME VARCHAR2(80)
TYPE NUMBER
VALUE VARCHAR2(4000)
DISPLAY_VALUE VARCHAR2(4000)
ISDEFAULT VARCHAR2(9)
ISSES_MODIFIABLE VARCHAR2(5)
ISSYS_MODIFIABLE VARCHAR2(9)
ISINSTANCE_MODIFIABLE VARCHAR2(5)
ISMODIFIED VARCHAR2(10)
ISADJUSTED VARCHAR2(5)
ISDEPRECATED VARCHAR2(5)
ISBASIC VARCHAR2(5)
DESCRIPTION VARCHAR2(255)
UPDATE_COMMENT VARCHAR2(255)
HASH NUMBER
SQL> select name,value from v$parameter where;
NAME VALUE
--------------- ---------------------------------------------
open_cursors 400
如果想要看参数的修改后参数文件里的值
SQL> desc v$spparameter
Name Null? Type
----------------------------------------- -------- ----------------------------
SID VARCHAR2(80)
NAME VARCHAR2(80)
TYPE VARCHAR2(11)
VALUE VARCHAR2(255)
DISPLAY_VALUE VARCHAR2(255)
ISSPECIFIED VARCHAR2(6)
ORDINAL NUMBER
UPDATE_COMMENT VARCHAR2(255)
SQL> col name for a15
SQL> col value for a45
SQL> select name,value from v$spparameter where;
NAME VALUE
--------------- ---------------------------------------------
open_cursors 300
SQL> show spparameter open_cursors
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* open_cursors integer 300
显然,有了show spparameter ,操作更简单一些。