WEB开发网
开发学院数据库Oracle Oracle数据库的优化之数据库磁盘I/O 阅读

Oracle数据库的优化之数据库磁盘I/O

 2009-05-12 13:13:56 来源:WEB开发网   
核心提示: 1. 检查V$WAITSTAT,确定DATA BLOCKS的竞争;2. 检查V$SYSTEM_EVENT,确定BUFFER BUSY WAITS,Oracle数据库的优化之数据库磁盘I/O(6),如果数值高,表明存在竞争;3. 在这种情况下,监控磁盘I/O的方法:用以下查询语句可以得到各表

1. 检查V$WAITSTAT,确定DATA BLOCKS的竞争;

2. 检查V$SYSTEM_EVENT,确定BUFFER BUSY WAITS,如果数值高,表明存在竞争;

3. 在这种情况下,检查V$SESSION_WAIT查询每个缓冲区的忙等待、FILE、BLOCK及ID;

4. 使用如下查询得到实体和FREE LIST的名称:

SELECT SEGMENT_NAME,SEGMENT_TYPE FROM DBA_EXTENTS WHERE FILE_ID=file AND BLOCK BETWEEN block_id AND block_id+blocks ;

5. 使用如下查询找到FREE LIST:

SELECT SEGMENT_NAME,FREELISTS FROM DBA_SEGMENTS WHERE SEGMENT_NAME=segment AND SEGMENT_TYPE=type ;

增加Free List

要减少表的Free list的竞争, 可以使用freelists参数重新创建表,方法有:

1. 删除旧表,重新创建表;

2. 通过从旧表选择数据插入到新表,删除旧表,重命名,完成表的重新创建;

3. 使用Export 和Import,export旧表,删除旧表,import该表。

建立和优化数据库文件的方针:

为表和索引创建不同的表空间。

将表和索引的表空间放在不同的磁盘上。

将REDO日志和回滚段放在不同的磁盘上。

将Oracle可执行文件和数据库文件放在单独的磁盘上。

确定最常用的表、索引,以及他们的表空间,并放在单独的磁盘上。

不要在Oracle数据磁盘上安装其他第三方软件。

监控磁盘I/O的方法:

用以下查询语句可以得到各表空间读写次数,phyrds+phywrts 即是磁盘I/O量。应按前面讲的方针调整数据文件的分布方式。

select name,phyrds,phywrts from v$datafile,v$filestat where v$datafile.file# = v$filestat.file#

结果如下:

NAME PHYRDS PHYWRTS

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

/u/oracle/OraHome/oradata/pb/system01.dbf 2511 8

/u/oracle/OraHome/oradata/pb/tools01.dbf 5 2

/u/oracle/OraHome/oradata/pb/rbs01.dbf 18 20

/u/oracle/OraHome/oradata/pb/temp01.dbf 4 2

/u/oracle/OraHome/oradata/pb/users01.dbf 45 5

/u/oracle/OraHome/oradata/pb/indx01.dbf 4 2

/u/oracle/OraHome/oradata/pb/drsys01.dbf 4 2

7 rows selected.

上一页  1 2 3 4 5 6 

Tags:Oracle 数据库 优化

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