Oracle参数查看方法小结

Oracle提供了大量的系统参数,下面是查询方法小结。

系统当前参数

系统当前参数涉及到这些视图:v$parameter、v$parameter2、v$system_parameter、v$system_parameter2和v$spparameter。

v$parameter

存放session级的参数,如果没有被"alter session"修改,默认和system级的参数值相同,下面是该视图的关键字段:
 1)NUM:参数编号;
 2)NAME:参数名;
 3)TYPE:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
  5-保留;
  6-Big integer;
 4)VALUE:当前session的参数值;
 5)DISPLAY_VALUE:用户友好的参数值;
 6)ISSES_MODIFIABLE:true表示参数能通过"alter session"被改变,false表示不能改变;
 7)ISSYS_MODIFIABLE:参数是否能被"alter system"改变,改变后:
  IMMEDIATE:参数可以通过"alter system"改变,立即生效
  DEFERRED:参数可以通过"alter system"改变,在下一个session开始生效
  false表示不能改变;
 8)ISINSTANCE_MODIFIABLE:true表示参数值在每个实例下可以是不同的,false表示所有实例必须具有相同的值。如果ISSYS_MODIFIABLE为false,则该值总是false;
 9)ISMODIFIED:表示参数是否在实例启动后被修改
  MODIFIED:参数被使用"alter session"修改
  SYSTEM_MOD:参数被使用"alter system"修改
  FALSE:在实例启动后没有被修改
 10)ISDEPRECATED:true表示该参数被弃用,否则false;
 11)DESCRIPTION:参数的描述信息;
 12)UPDATE_COMMENT:最近一次修改的注释;
 13)HASH:参数名的哈希值。

v$system_parameter

存放实例级别的参数,新的session将从这里继承参数值。下面是该视图的关键字段:
 1)NUM:参数编号;
 2)NAME:参数名;
 3)TYPE:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
  5-保留;
  6-Big integer;
 4)VALUE:实例级的参数值;
 5)DISPLAY_VALUE:用户友好的参数值;
 6)ISSES_MODIFIABLE:true表示参数能通过"alter session"被改变,false表示不能改变;
 7)ISSYS_MODIFIABLE:参数是否能被"alter system"改变,改变后:
  IMMEDIATE:参数可以通过"alter system"改变,立即生效
  DEFERRED:参数可以通过"alter system"改变,在下一个session开始生效
  false表示不能改变;
 8)ISINSTANCE_MODIFIABLE:true表示参数值在每个实例下可以是不同的,false表示所有实例必须具有相同的值。如果ISSYS_MODIFIABLE为false,则该值总是false;
 9)ISMODIFIED:表示该参数怎么被修改。如果"alter system"被执行,这个值将是MODIFIED;
 10)ISDEPRECATED:true表示该参数被弃用,否则false;
 11)DESCRIPTION:参数的描述信息;
 12)UPDATE_COMMENT:最近一次修改的注释;
 13)HASH:参数名的哈希值。

v$parameter2

和v$parameter相同,唯一的区别是如果一个参数有多个值,那么在v$parameter2中将有多行,而在v$parameter中则只有一行,在value中使用逗号分隔多个值。
例如参数control_files,在v$parameter中为:

[plain] view plaincopyprint?
  1. name            value  
  2. --------------------------------------------------------------------------------------  
  3. control_files   E:\ORACLE\ORADATA\LY\CONTROL01.CTL, E:\ORACLE\ORADATA\LY\CONTROL02.CTL, E:\ORACLE\ORADATA\LY\CONTROL03.CTL  
name			value
--------------------------------------------------------------------------------------
control_files	E:\ORACLE\ORADATA\LY\CONTROL01.CTL, E:\ORACLE\ORADATA\LY\CONTROL02.CTL, E:\ORACLE\ORADATA\LY\CONTROL03.CTL

在v$parameter2中为:

[plain] view plaincopyprint?
  1. name            value  
  2. --------------------------------------------------------------------------------------  
  3. control_files   E:\ORACLE\ORADATA\LY\CONTROL01.CTL  
  4. control_files   E:\ORACLE\ORADATA\LY\CONTROL02.CTL  
  5. control_files   E:\ORACLE\ORADATA\LY\CONTROL03.CTL  
name			value
--------------------------------------------------------------------------------------
control_files	E:\ORACLE\ORADATA\LY\CONTROL01.CTL
control_files	E:\ORACLE\ORADATA\LY\CONTROL02.CTL
control_files	E:\ORACLE\ORADATA\LY\CONTROL03.CTL

v$system_parameter2

类似于v$parameter2。

v$spparameter

用于存放服务器参数文件(spfile)的参数信息,如果服务器参数文件没有被用于启动实例,则视图每行的ISSPECIFIED列的值都为false,视图的关键字段如下:
 1)SID:参数的SID;
 2)NAME:参数名;
 3)VALUE:参数值(如果服务器参数文件没有被用于启动实例,则为null);
 4)DISPLAY_VALUE:参数值,采用用户友好的格式;
 5)ISSPECIFIED:true表示参数在服务器参数文件中指定,否则false;
 6)ORDINAL:参数值的位置(序号)(如果服务端配置文件没被用于启动实例,则为0)。只有当参数值为一个列表时才使用;
 7)UPDATE_COMMENT:最近一次修改的注释(如果服务器参数文件没有被用于启动实例,则为null)。

隐藏参数

Oracle系统中还有一类参数称之为隐藏参数(hidden parameters),是系统中使用,但Oracle官方没有公布的参数,这些参数可能是那些还没有成熟或者是系统开发中使用的参数。这些参数在所有Oracle官方提供的文档中都没有介绍,他们的命名有一个共同特征就是都以'_'作为参数的首字符,和隐藏参数相关的视图有x$ksppi、x$ksppcv和x$ksppsv。

x$ksppi

x$ksppi是v$parameter、v$parameter2、v$system_parameter和v$system_parameter2的基础表,保存参数信息,关键字段如下:
 1)ADDR:内存地址
 2)INDX:序号
 3)INST_ID:实例编号
 4)KSPPINM:参数名称
 5)KSPPITY:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
 6)KSPPDESC:参数描述信息
 7)KSPPIFLG:标志,用来说明isses_modifiable或者issys_modifiable

x$ksppcv

保存当前session的参数值,和x$ksppi用indx关联,关键字段如下:
 1)ADDR:内存地址
 2)INDX:序号
 3)INST_ID:实例编号
 4)KSPPSTVL:参数的当前值
 5)KSPPSTDF:参数的默认值
 6)KSPPSTVF:标志字段,用来说明('Modified'、'System Modified'或is_adjusted)
 7)KSPPSTCMNT:注释

x$ksppsv

保存系统参数值,和x$ksppi用indx关联,字段和x$ksppcv基本一致。

查询隐藏参数

查询隐藏参数和当前session的参数值和默认值:

[sql] view plaincopyprint?
  1. select ksppinm "Parameter Name", ksppstvl "Value", ksppstdf "Default"  
  2.   from x$ksppi x, x$ksppcv y  
  3.  where x.indx = y.indx  
  4.    and ksppinm like '/_%trace%' escape '/';  
select ksppinm "Parameter Name", ksppstvl "Value", ksppstdf "Default"
  from x$ksppi x, x$ksppcv y
 where x.indx = y.indx
   and ksppinm like '/_%trace%' escape '/';

查看隐藏参数,并显示当前session和实例的参数值:

[sql] view plaincopyprint?
  1. select a.ksppinm  Parameter,  
  2.        a.ksppdesc Description,  
  3.        b.ksppstvl "Session Value",  
  4.        c.ksppstvl "Instance Value"  
  5.   from x$ksppi a, x$ksppcv b, x$ksppsv c  
  6.  where a.indx = b.indx  
  7.    and a.indx = c.indx  
  8.    and a.ksppinm like '\_%' escape '\';  
select a.ksppinm  Parameter,
       a.ksppdesc Description,
       b.ksppstvl "Session Value",
       c.ksppstvl "Instance Value"
  from x$ksppi a, x$ksppcv b, x$ksppsv c
 where a.indx = b.indx
   and a.indx = c.indx
   and a.ksppinm like '\_%' escape '\';

将a.ksppinm指定特定的参数名,可以查看指定参数的对应的值。

废弃的参数

Oracle中存在一些以前的版本中存在,但新版本中废弃的参数,可以在视图V$OBSOLETE_PARAMETER中查找到,该视图值包含两个字段,name(参数名)和ISSPECIFIED(true表示参数在参数文件中指定,false表示没有。一般情况下该值都应该为false)。

下面是查询隐藏参数和ISSPECIFIED值的方法:

[sql] view plaincopyprint?
  1. SELECT name, isspecified FROM v$obsolete_parameter;  
SELECT name, isspecified FROM v$obsolete_parameter;

补充

v$parameter_valid_values

视图v$parameter_valid_values包含了参数的有效值列表,主要字段如下:
 1)NUM:参数编号
 2)NAME:参数名
 3)ORDINAL:同一个参数的有效值序列号(从1开始)
 4)VALUE:参数值
 5)ISDEFAULT:该值是否为参数的默认值
下面是一个例子,查看参数optimizer_features_enable的所有有效值:

[plain] view plaincopyprint?
  1. select * from v$parameter_valid_values where name = 'optimizer_features_enable'  
  2.   
  3. NUM     NAME                        ORDINAL     VALUE       ISDEFAULT  
  4. ----------------------------------------------------------------------------------  
  5. 905     optimizer_features_enable   1           8.0.0       FALSE  
  6. 905     optimizer_features_enable   2           8.0.3       FALSE  
  7. 905     optimizer_features_enable   3           8.0.4       FALSE  
  8. 905     optimizer_features_enable   4           8.0.5       FALSE  
  9. 905     optimizer_features_enable   5           8.0.6       FALSE  
  10. 905     optimizer_features_enable   6           8.0.7       FALSE  
  11. 905     optimizer_features_enable   7           8.1.0       FALSE  
  12. 905     optimizer_features_enable   8           8.1.3       FALSE  
  13. 905     optimizer_features_enable   9           8.1.4       FALSE  
  14. 905     optimizer_features_enable   10          8.1.5       FALSE  
  15. 905     optimizer_features_enable   11          8.1.6       FALSE  
  16. 905     optimizer_features_enable   12          8.1.7       FALSE  
  17. 905     optimizer_features_enable   13          9.0.0       FALSE  
  18. 905     optimizer_features_enable   14          9.0.1       FALSE  
  19. 905     optimizer_features_enable   15          9.2.0       FALSE  
  20. 905     optimizer_features_enable   16          10.1.0      FALSE  
  21. 905     optimizer_features_enable   17          10.1.0.3    FALSE  
  22. 905     optimizer_features_enable   18          10.1.0.4    FALSE  
  23. 905     optimizer_features_enable   19          10.1.0.5    FALSE  
  24. 905     optimizer_features_enable   20          10.2.0.1    TRUE  
  25. 905     optimizer_features_enable   21          10.2.0.1.1  FALSE  

你可能感兴趣的:(数据库)