不胜人生一场醉

欢迎来到不胜人生一场醉>>   | 首页 资源中心 | 软件开发 | 软件工程 | 艺术长廊 | 数据仓库专区 | 你的故事我的歌 | 数据库专区 | ITPUB论坛

Oracle性能优化视频学习笔记-数据库配置和I/O问题

发表人:PercyWang | 发表时间: 2007年十二月11日, 23:57

本章节主要是介绍表空间数据文件日志文件的最优配置和相关I/O的性能视图表

数据库配置和I/O问题

Oracle文件类型
表空间不正确的用法
表空间分区的原因
检查点如何工作
监视和优化检查点
监视和优化日志

基本优化原则
磁盘I/O最小化
磁盘负载平衡
本地化管理表空间

通过文件分布减少磁盘竞争
数据文件和重做日志文件分离
重做日志文件访问频繁,放在比较快的磁盘上,不适于RAID5
条带化表的数据
减少与数据库无关的磁盘I/O
裸设备的使用,与文件无关,直接读写设备;无法使用操作系统和数据库进行备份;管理成本比较高
编辑裸设备配置文件
重新启动service rawdevices restart

表空间用法
System表空间仅存储系统数据字典
创建本地化管理表空间避免表空间管理成本
分离表和索引到不同的表空间,方便进行并行操作
在各个表空间内创建回滚段
在各自表空间内存储大对象
创建一个或多个临时表空间

查看I/O利用率
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
表空间物理读和物理写的状况
select d.tablespace_name tablespace,
d.file_name,f.phyrds,f.phywrts
from v$filestat f,dba_table_files d
where f.file#=d.file_id
可以参看statpack中的tablespace和file部分的I/O情况

文件条带化
操作系统条带化RAID
人工条带化 create table or alter table command with allocate clause

评估是否需要全表扫描
配置DB_FILE_MULTIBLOCK_READ_COUNT,读取的块数,越大读取越多,影响cost-based optimizer选择
DB_BLOCK_SIZE每次读取块的大小

RAID方式提高可靠性和安全性
RAID0文件放在多个物理盘上,读写较好,不安全
RAID1无条带化
RAID5条带化和冗余度,不适合重做日志文件

手工条带化
建表时指定物理文件,可以减少竞争
create tablespace app_date
datafile 'd:test1.dbf' size 10M,
'd:test2.dbf' size 10M;
对象条带化会增加管理成本
alter table testtable
allocate extent (datafile 'd:test1.dbf' size 5M);
Oracle分区选项
create table sale_part
(
sales_date date,
name varchar2(20)
)
partition by range(sales_date)
(
)
可以查询全表扫描的操作次数
select name,value from v$sysstat
where name like '%table scan%'
重点监控长表扫描的次数>DB_FILE_MULTIBLOCK_READ_COUNT
v$session_longops可以查询监控全表扫描的表
select sid,serial#,opname,
to_char(start_time,'hh24:mi:ss') as "start",
(sofar/totalwork)*100 as percent_complete
from v$session_longops;
可以根据sid,serial#,opname,找到相应的SQL

select sql_text
from v$session_longops a,v$sqltext b
where a.sql_address=b.address;

检查点
增量检查点更新控制文件,日志切换时切换数据文件头部和控制文件
全量检查点更新控制文件和数据文件头部,或者DBWn写出所有的缓冲区
日志切换,超时
配置检查点的参数
log_checkpoint_timeout
log_checkpoint_interval
log_checkpoints_to_alert
检查点和系统故障恢复之间需要平衡

select name,value from v@sysstat where name like '%check%'
可以检查检查点的频率和次数

检查点队列
参数 与故障恢复相关
fast_start_IO_target
fast_start_mttr_target替代前两个参数

target_mttr
estimated_mttr

log file的配置
v$logfile 列出日志成员和组
v$log 每个组的成员详细信息状态
v$log_history 历史日志切换频率
监视重做日志文件
查看日志性能
select event,total_waits,time_waited
from v$system_event
where event='log file parallel write'

sar iostat 均可以显示磁盘I/O性能

v$archive_dest
v$archived_log
v$archive_processes

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)


authimage



Valid XHTML 1.0 Strict and CSS. Powered by pLog
Design by Blog.lvwo.com