服务热线

  • 服务电话:0756-3391906
  • 软件测试技术:0756-3391891
  • 嵌入式软件测试:0756-3391732
  • 网络测试技术:0756-3396982
  • 监督电话:0756-3391848
  • 软件业务服务:0756-3391906
  • 网络业务服务:0756-3396981

当前位置: 首页 >> 技术论文 >> 技术文章

Oracle环境参数与系统性能

    

数据库参数调优的研究

_Oracle环境参数与系统性能                                        

【摘要】 本文主要讨论Oracle环境参数对系统性能的影响。

【关键词】 环境参数、命中率、事务、性能

随着信息技术的发展,应用系统被设计得日易复杂和庞大,其数据量也在以几何级数递增。一方面在初期合理地设计数据库是关键,好的设计能起到事半功倍的效果;另一方面,日常运行过程中对数据库进行合理优化也显得日趋重要,因为业务的千变万化对数据库的性能在设计期是不可预料的,同时后期运行过程中对设计可能已经无法再更改了,优化也可以有效的规避某些设计缺陷。本文将以Oracle 10G为例,来介绍Oracle主要环境参数与系统性能的关系,并结合具体项目说明这些参数对系统性能的影响,给出一种调优思路。

一、ORACLE环境参数简介

1.1配置文件

说起Oracle环境参数,不得不提到配置文件,在Oracle9i之前,参数文件只有一种,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile。这两种参数文件都是用来存储参数配置以供oracle读取的,但也有不同点,注意以下几点:


pfile

spfile

适用范围

Oracle 9i以前版本,创建数据库时

Oracle 9i以后版本(含9i),运行时

文件格式

文本文件

二进制文件

修改方式

手工编辑

通过sql命令在线编辑

生效方式

设置参数后必须重启才能生效

一般情况下由sql命令指定的参数时限和作用域决定,可立即生效,也可不立即生效;当然某些参数是需要重启才能生效。

1.2参数修改

     配置文件是保存在磁盘上的物理文件,Oracle启动时会加载该配置文件作为数据库的配置,那么怎么对这些参数进行修改呢,前面说了,9i之后的spfile只能通过sql命令行来修改:

     在线修改是在数据库运行时,用alter system命令进行修改,命令如下(详细的命令 语句请参考Oracle官方参考文档):

设置或修改:

alter system set parameter_name = parameter_value [, parameter_value ]...

  [ COMMENT 'text' ]

  [ DEFERRED ]

  [ SCOPE = { MEMORY | SPFILE | BOTH } ]

  [ SID = { 'sid' | * } ]

删除:

alter system reset parameter_name

  [ SCOPE = { MEMORY | SPFILE | BOTH } ]

  [ SID = 'sid' ]

对于有些参数也可以使用 ALTER SYSTEM SET PARAMETER=''达到相同的效果;

 

注:

[ COMMENT 'text' ] :表示可以加注释,如 ALTER SYSTEM SET JOB_QUEUE_PROCESSES=

50 SCOPE=BOTH DEFERRED COMMENT="  2008-05-19"

[ DEFERRED ]:表示所作修改只适用于将来的会话,对当前已有的会话不影响,这个参数只对少数参数有用,

具体可使用的参数可以查看v$parameter视图

select * from v$parameter where issys_modifiable='DEFERRED'
[ SCOPE = { MEMORY | SPFILE | BOTH } ]:

SPFILE:修改只对SPFILE有效,不影响当前实例,需要重启数据库才能生效;

MEMORY:修改只对内存有效,即只对当前实例有效,且立即生效,但不会保存到SPFILE, 数据库重启后此配置丢失;

BOTH:顾名思义,包含以上两种,立即生效,且永久生效。

所有的参数都可以使用spfile,部份参数可以使用memory,可以使用如下SQL查询不能使用memory方式修改的参数

select * from v$parameter where issys_modifiable='FALSE'

对于ALTER SYSTEM的参数修改命令,请注意以下几点:

1)如果当前实例使用的是pfile而非spfile,则scope=spfile或scope=both会产生错误;

2)如果实例以pfile启动,则scope的默认值为MEMORY,若以spfile启动,则默认值为BOTH;

[ SID = { 'sid' | * } ]:指定修改参数的作用实例号,如果为*则表示所有实例,这个选项用于RAC数据库。


来源:珠海南方软件产品检测中心-雷正伟、徐锋光