当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle认证辅导:教你数据库查询初始化参数

Oracle
常见的一些Oracle初学者的问题
ORACLE认证系统概述
数据库考试简介:Oracle认证
Oracle认证基础知识介绍
ADO连接Oracle Access示例及记录集处理源码
SQL Server和MySQL的安全性分析
用Oracle和SQL Server数据库组合利弊分析
Oracle 11g分区功能新革命
Flashback Query 恢复误删除的数据
基于Oracle高性能动态SQL程序开发
怎样在Oracle 9i中正确的转换时区
Oracle 10g导出的数据库能否导入Oracle 9i?
增加Distinct后查询效率反而提高
Oracle限制返回结果集的大小
Java语言数据库操作的基本流程
美国甲骨文(ORACLE)公司入驻渝中区大都会商厦
RHEL AS4上安装oracle 10R2 的方法
DB中如何查询Table占用空间的大小
编写高质量高性能的MySQL语法
Oracle数据库自动备份的具体实现步骤

Oracle认证辅导:教你数据库查询初始化参数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 84 ::
收藏到网摘: n/a

  首先初始化参数的设置的方法就有很多种:可以通过ALTER SYSTEM SET SCOPE = MEMORY的方式仅设置内存的修改,也可以通过ALTER SYSTEM SET SCOPE = SPFILE只修改SPFILE的值,当然也可以同时修改SPFILE和MEMORY中的设置。还有一种初始化参数可以设置延迟生效,也就是说这个修改只对以后连接到数据库的会话生效,而对当前会话以及其他已经连接到Oracle的会话不会生效。如果再考虑RAC环境,数据库中存在多个启动实例的情况,那么查询数据库初始化参数就更加复杂了。

  所幸Oracle提供的查询初始化参数方法也有很多种:SHOW PARAMETERS、SHOW SPPARAMETERS、CREATE PFILE、V$PARAMETER、V$PARAMETER2、V$SYSTEM_PARAMETER、V$SYSTEM_PARAMETER2、 V$SPPARAMETER。

  SHOW PARAMETERS是SQLPLUS工具提供的查询初始化参数的方法,这个方法查询的初始化参数是当前会话生效的初始化参数。

  SHOW SPPARAMETERS也是SQLPLUS工具提供的方法,用来查询当前会话生效的SPFILE参数包含的初始化参数。这个命令在11g以后sqlplus版本中有效。

  CREATE PFILE命令不像其他方法那样直观,这种方法可以将SPFILE中或当前内存中设置的初始化文件保存到PFILE文件中,然后就可以通过文本编辑工具直观的看到SPFILE中或当前内存中设置了哪些初始化参数。虽然这种方法看上去比较麻烦,但是这种方法列出的参数都是用户设置的参数,所有默认值的参数并不会列出来,因此看到的结果要比其他方法直观得多。在11g以后的版本允许CREATE PFILE FROM MEMORY。

  V$PARAMETER视图提供了当前会话可见的初始化参数的设置,如果像查询RAC数据库的所有实例的设置,可以查询GV$PARAMETER视图。

  V$PARAMETER2视图和V$PARAMETER差不多,唯一的区别在于对于包括值的初始化参数,从这个视图会返回多条记录,每条记录对应一个值。同样的,对于RAC环境可以查询GV$PARAMETER2视图。

  V$SYSTEM_PARAMETER视图记录当前实例生效的初始化参数设置。注意这里是实例生效而不是会话生效。同样,GV$SYSTEM_PARAMETER则包含了所有实例生效的初始化参数信息。

  V$SYSTEM_PARAMETER2视图与V$SYSTEM_PARAMETER视图的关系和V$PARAMETER2视图与V$PARAMETER视图的关系一样,都是对于包含多个值的参数采用了分行处理的方式。

  V$SPPARAMETER记录了来自SPFILE文件中初始化参数。如果参数在SPFILE文件中没有设置,则字段ISSPECIFIED对应的值为FALSE。同样可以查询GVSPPARAMETER参数来显示RAC环境所有实例的设置。

  首先看一下V$PARAMETER和V$PARAMETER2的区别,这个区别同样适用于V$SYSTEM_PARAMETER和V$SYSTEM_PARAMETER2:

  SQL> SELECT NAME, VALUE FROM V$PARAMETER2 MINUS3 SELECT NAME, VALUE FROM V$PARAMETER2;

  NAME VALUE0-------------

  control_files E:\ORACLE\ORADATA\YTK102\CONTROL01.CTL, E:\ORACLE\ORADATA\YTK102\CONTROL02.CTL, E:\ORACLE\ORADATA\YTK102\CONTROL03.CTL

  SQL> SELECT NAME, VALUE FROM V$PARAMETER22 MINUS3 SELECT NAME, VALUE FROM V$PARAMETER;

  NAME VALUE-----------------control_files E:\ORACLE\ORADATA\YTK102\CONTROL01.CTLcontrol_files E:\ORACLE\ORADATA\YTK102\CONTROL02.CTLcontrol_files E:\ORACLE\ORADATA\YTK102\CONTROL03.CTL