Oracle效能優化視訊學習筆記-資料庫配置和I/O問題

bq_wang發表於2007-12-11
本章節主要是介紹表空間資料檔案日誌檔案的最優配置和相關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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-145584/,如需轉載,請註明出處,否則將追究法律責任。

相關文章