Oracle IO架构
Oracle 11g支持的文件系统:
1.文件系统(NAS,SAN,普通文件系统)
2.裸设备
3.ASM
Oracle进程和文件
CKPT,LGWR,ARCn,SERVER均读写控制文件.
性能指导
1.保持磁盘io比较低
2.均匀分配数据到不同磁盘
3.使用临时表空间
文件分布:
分布数据文件和redo文件.
条带化表数据信息.
合理分布数据到不同表空间(数据和索引),减少磁盘的竞争.
减少和数据库无关联的磁盘IO.
表空间的使用原则
system表空间保留为数据字典对象.
创建本地表空间管理数据.(dbca默认本地表空间管理)
将表和索引分开管理(不同表空间,不同磁盘)
创建undo表空间.
存储大对象在自己的表空间中.
创建多个临时表空间.
IO统计工具
服务器IO
v$filestat
v$tempstat
v$datafile
文件的物理读写情况
select phyrds,phywrts,d.name
from v$datafile d,v$filestat f
where d.file#=f.file#
order by d.name;
Statspack
利用OEM查看信息
文件条带化
操作系统
1.使用操作系统条带化或者RAID冗余
2.条带的大小
手动条带:
create table or alter table ..... allocate;
优化全表扫描的操作
1.全部扫描并非全部是不好的.
在表的数据比较少的情况下,全表扫描其实效率是最高的.
2.DB_FILE_MULTIBLOCK_READ_COUNT初始化参数检查全表扫描的IO:
取决于操作系统.数据库块是服务器块的两倍.
CBO执行计划
3.监控长期运行的全表扫描使用
v$session_logops
查看全表扫描信息
select name ,value
from v$sysstat
where name like '%table scan%';
查看long table是否时间比较长.
监控全部扫描操作
1.查看长操作的进度
select sid,serial#,opname,to_char(start_time,'HH24:MI:SS') as "Start",
(sofar/totalwork)*100 as PERCENT_COMPLETE
from v$session_longops;
2.dbms_application_info.set_session_longops(rindex,slno,"Operation X",obj,0,sofar,totalwork,"table","tables");
检查点:
增量检查点:
CKPT更新控制文件.
在检查点切换时候, CKPT更新控制文件和数据文件头.
全检查点:(全部,表空间)
CKPT更新控制文件和数据文件头.
DBWn将检查点队列中缓存块写到数据文件.
检查点的初始化参数化
FAST_START_IO_TARGET
LOG_CHECKPOINT_INTERVAL
LOG_CHECKPOINT_TIMEOUT
FAST_START_MTTR_TARET
v$instance_recovery中获取实例恢复信息
重做日志组和成员
重做日志组至少有两组,一般设计为多路复用.
重做日志配置:
1.提供足够多的组减少等待.
2.redo log文件放在磁盘比较块的磁盘中.
3监控重做日志
v$logfile
v$log
v$log_history
最好将LGWR进程写磁盘和ARCn进程分布在不同磁盘.
alter system archive log all to '';
v$archive_dest;
v$archived_log:
v$archive_processes: