WEB开发网
开发学院数据库Oracle Oracle性能调整的要点之SGA 阅读

Oracle性能调整的要点之SGA

 2009-02-02 13:09:27 来源:WEB开发网   
核心提示: 6. 保留大的对象在shared pool中,大的对象是造成内存碎片的主要原因,Oracle性能调整的要点之SGA(2),为了腾出空间许多小对象需要移出内存,从而影响了用户的性能,增加shared_pool_size的值,二、Buffer Cache1. granule大小的设置,因此需要

6. 保留大的对象在shared pool中。大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。因此需要将一些常用的大的对象保留在shared pool中,下列对象需要保留在shared pool中:

a. 经常使用的储存过程;

b. 经常操作的表上的已编译的触发器

c. Sequence,因为Sequence移出shared pool后可能产生号码丢失。

查找没有保存在library cache中的大对象:

Select * from v$db_object_cache where sharable_mem>10000 and type in (’PACKAGE’,'PROCEDURE’,'FUNCTION’,'PACKAGE BODY’) and kept=’NO’;

将这些对象保存在library cache中:

Execute dbms_shared_pool.keep(‘package_name’);

对应脚本:dbmspool.sql

7. 查找是否存在过大的匿名pl/sql代码块。两种解决方案:

a. 转换成小的匿名块调用存储过程

b. 将其保留在shared pool中

查找是否存在过大的匿名pl/sql块:

Select sql_text from v$sqlarea where command_type=47 and length(sql_text)>500;

8. Dictionary cache的优化

避免出现Dictionary cache的misses,或者misses的数量保持稳定,只能通过调整shared_pool_size来间接调整dictionary cache的大小。

Percent misses应该很低:大部分应该低于2%,合计应该低于15%

Select sum(getmisses)/sum(gets) from v$rowcache;

若超过15%,增加shared_pool_size的值。

二、Buffer Cache

1. granule大小的设置,db_cache_size以字节为单位定义了default buffer pool的大小。

上一页  1 2 3 4  下一页

Tags:Oracle 性能 调整

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接