Oracle性能调优——基本参数调整

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle性能调整(一)——基本参数调整一、操作系统参数

交换区是Oracle的一项基本的要求。可以根据Oracle的发行要求来确定。一般交换区大小的要求是该服务器内存的2倍至4倍之间,建议是内存的4倍

Note2:oracle 文件设置

当服务器平台已完成操作系统的安装后,就应该开始认真的考虑下面的问题:

A、是否采用裸设备

实际应用的生产系统基本都是采用裸设备,使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。

B、安装点的考虑

Oracle的安装点就是指数据文件、日志文件和控制文件的安置路径,为了使系统在以后运行性能达到优化,建议将数据文件、日志文件和控制文件的安置路径与数据库系统存放在不同的路径上。最好将数据文件、日志文件和控制文件分别存放在不同的路径。

C、SYSTEM表空间对应数据文件

在自定义安装会话中,建议你根据需要设置system表空间所对应的数据文件的大小。一般要设置比默认值的2倍。该数据文件的大小最好是在300MB至500MB间。因为数据文件太小不利于系统的运行。

D、临时表空间对应的数据文件

临时表空间对应的数据文件可以根据将来系统存放的应用的处理情况来定。比如系统将来可能要经常进程排序处理,则需要设置较大的临时表空间,也可能需要再建立新的临时表空间。这里建议临时表空间的数据文件在100MB至300MB左右。

E、回滚段表空间对应的数据文件

回滚表空间都是系统管理,初始值也是根据系统事务量预估计的值,实际到运行阶段如果系统常出现ORA-01555错误的时候,可能就需要增加回滚表空间的大小。

F、日志文件的大小

日志文件的大小对于Oracle系统的运行也是相当重要。默认值是太小。实际根据事务繁忙预估计日志大小,没有固定的具体值范围,建议重做日志切换时间不能过短也不能过长,一般在20-40分钟左右。

该参数可以在系统运行期间根据数据库系统日志切换时间重新调整,控制文件的大小。

G、数据库块的大小

如果你的应用系统是OLTP的话,可以采用较小的数据库块。如果是DSS类型的应用系统,则可以设置较大的数据库块,目前Oracle产品所允许的数据库块可以是2KB至64KB之间。无论你选择较大的块或较小的块,它的值都必须是2的整数倍,比如2048,4096,8192等。但需要注意的是,如果操作系统为64位,则可选择较大的块。

H、字符集的选择

字符集是Oracle系统专门支持的一项技术。详细请参考另外的章节。一般不要与另外的已经存放的Oracle系统的字符集产生冲突即可。但如果你的环境是一个新的平台,不需要与其它平台进行数据交换的话,建议选择默认的字符集。这样可以利于将来的修改。

二、数据库启动参数(SGA)

Note1:

默认的SGA是PGA的3倍

SGA+PGA=PHY_MEM×60%得到最好的性能

查看:sql> show parameters sga_max_size

修改:sql>alter system set sga_max_size = 30000000;重启数据库生效

Note2:

select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;

假如共享池的命中率低于95%,就要考虑调整应用(通常是没使用bind var )或者增加内存

Note3:

sql> select value from v$sysstat where name ='physical reads';

sql> select value from v$sysstat where name ='physical reads direct';

sql> select value from v$sysstat where name ='physical reads direct (lob)';

sql> select value from v$sysstat where name ='consistent gets';

sql> select value from v$sysstat where name = 'db block gets';

令x = physical reads direct + physical reads direct (lob)

命中率=100 - ( physical reads - x) / (consistent gets + db block gets - x)*100

通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区

Note4:

对应的参数是log_buffer,缺省值与OS相关,一般是500K。检查v$session_wait中是否存在log buffer wait,v$sysstat中是否存在redo buffer allocation retries

select name,value from v$sysstat where name in('redo entries','redo buffer allocation retries');

假如redo buffer allocation retries/ redo entries 的比例超过1%我们就可以考虑增大log_buffer。

A、检查是否存在log buffer wait:

Select * from v$session_wait where event='log buffer wait';

如果出现等待,一可以增加log_buffer的大小,也可以通过将log 文件移到访问速度更快的磁盘来解决。

B、Select name,value from v$sysstat where name in ('redo buffer allocation retries','redo entries')

Redo buffer allocation retries接近0,小于redo entries 的1%,如果一直在增长,表明进程已经不得不等待redo buffer的空间。如果Redo buffer allocation retries过大,增加log_buffer的值。

相关文档
最新文档