设为首页 加入收藏

TOP

ORACLE数据库性能优化之--)内存磁盘(四)
2015-11-21 01:32:45 来源: 作者: 【 】 浏览:3
Tags:ORACLE 数据库 性能 优化 内存 磁盘
有单独设置,而是oracle自动按照一定的算法在共享池中分配,按照oracle中的内存空间分配算法,如果库缓存命中率高,那么数据字典缓存命中率也会很高。

3.4 重做日志缓冲区调整

重做日志缓冲区用于存放数据的修改信息,重做日志首先写入重做日志缓冲区,在一定条件下由LGWR进程将重做缓冲区的信息写入重做日志文件;如果重做日志缓冲区容量较大,即可以保证有足够空间存储新产生的重做记录,又可以为LGWR进程高效写入重做日志文件提供了条件;如果重做日志缓冲区已经满了,没有空间容纳新的重做日志记录,新产生的重做日志记录处于waiting状态,称为重做日志缓冲区写入失败。过多的重做日志写入失败,说明重做日志缓冲区偏小,影响数据库性能。

可以通过如下方式检查重做日志缓冲区写入失败率。

select t1.NAME"request",t2.NAME,t1.VALUE/t2.VALUE "Fail Ratio"

from v$sysstat t1,v$sysstat t2

where t1.name='redo log space requests' andt2.NAME='redo entries';

结果如下:

SQL> select t1.NAME"request",t2.NAME,t1.VALUE/t2.VALUE "Fail Ratio"

2 from v$sysstat t1,v$sysstat t2

3 where t1.name='redo log spacerequests' and t2.NAME='redo entries';

request NAME Fail Ratio

-------------------------------------------------------------------------------------------------------------------------------- ----------

redo log space requests redoentries 0.00355035

SQL>

通常日志缓冲区的写入失败率应该接近于0,如果失败率大于1%,则说明日志缓冲区太小,应该增加LOG_BUFFER的大小。

看到写入失败率为0.003,远远小于1,证明日志缓冲区还算比较合适的。

4,PGA调整

PGA是存放服务器进程私有的数据和控制信息的内存区域,每个服务器进程只能访问自己的PGA区。在PGA区中可以包括一下这些工作区。

通常情况下,可以先将参数PGA_AGGREGATE_TARGET的值设置为SGA的20%,然后再数据库中运行有代表性的工作负荷、统计、检查PGA运行情况,并进行适当调整。

在oracle数据库中,排序可以在pga的排序区和临时表空间的临时段中进行排序。由于使用临时段需要对磁盘进行io操作,会降低排序的效率,因此oracle建议尽量在排序区进行排序操作。

根据数据在排序区的排序量和磁盘排序量,可以计算出排序区排序命中率,

select memory1.NAME "memorysort",disk1.name "disk sort", (1-disk1.value/memory1.value)*100"HitRatio"

from v$sysstat memory1, v$sysstat disk1

where memory1.NAME='sorts (memory)' anddisk1.NAME='sorts (disk)';

结果如下:

SQL> select memory1.NAME "memorysort",disk1.name "disk sort", (1-disk1.value/memory1.value)*100"HitRatio"

2 from v$sysstat memory1,v$sysstat disk1

3 where memory1.NAME='sorts(memory)' and disk1.NAME='sorts (disk)'

4 ;

memory sort disk sort HitRatio

-------------------------------------------------------------------------------------------------------------------------------- ----------

sorts (memory) sorts (disk) 99.9999420

SQL>

正常情况下,排序区的命中率应该高于95%,即保证绝大多数的排序操作在内存中进行,否则,就应该调整排序区大小,即增加SORT_AREA_SIZE的大小。从这里看到命中率为99.99还是合适的。

5,数据库碎片整理

5.1 表空间碎片整理

查看每个表空间的大小:SelectTablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name

查看剩余表空间大小:SELECTtablespace_name 表空间,sum(blocks*8192/1000000) 剩余空间M FROMdba_free_space GROUP BY tablespace_name;

表空间级碎片是由于段的建立、扩展和删除引起的。

可以采用2种方案来操作

1是altertablespace PLCRM coalesce命令来。

SQL> alter tablespace PLCRM coalesce;

Tablespacealtered.

SQL>

2是先通过export程序将数据导出,然后利用truncate删除表中的数据,最后用import将数据导入即可。

5.2 整理表的碎片空闲

分配给表的物理空间数量:SelectSegment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name;

实际使用的空间:selectnum_rows * avg_row_len from user_tables where table_name = 'EMP';

回收表的空闲空间:altertable tablename deallocate unused;

5.3 索引碎片整理

(1). recreateindex

(2). alterindex skate.idx_test rebuild nologging parallel 4 online ;

(3). 如果叶块是half-emptyor near empty,可以运行“alter index coalesce”来合并

6 磁盘I/O优化与调整

可以按照以下规律进行整理

(1)数据库的物理文件,包括数据文件日志文件以及控制文件,尽量分散到不同磁盘上,避免相互之间的磁盘竞争,同时还可以实现均衡磁盘负载。

(2)将同一个表空间的数据文件尽量平均分配到不同的磁盘上,实现磁盘之间的负载均衡。

(3)尽量将所有的日志文件分散到不同的磁盘上面,减少日志文件对磁盘的竞争。

(4)尽量将表和索引分散到不同的表空间,将表数据和索引数据存储到不同的磁盘,减少数据文件和索引文件对磁盘的竞争。

(5)为不同的应用创建不同的表空间,并将表空间所对应的数据文件存放到不同的磁盘,减少不同应用之间的磁盘竞争。

(6)系

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle中PL/SQL的执行部分和各种.. 下一篇oracle锁表、解锁的语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: