一.調優的目標:
1.減少響應時間
2.減少數據庫塊訪問
3.盡量把常用的塊CACHE到內存中,提高訪問的速度
4.提高OLTP的吞吐量
5.設置系統的負載
二.數據庫的系統響應時間:
response time = service time + wait time
service's meaning:cpu used by this session
select * from v$sysstat t where t.name ='CPU used by this session';

時間單位:9i以后單位是百萬分之一秒
其中
Service Time = SQL解析時間 + 遞歸調用時間 + 其他時間
1.視圖的使用
--實例級系統性能視圖:v$sysstat
使用:(以CPU used by this session為例)
select * from v$sysstat t where t.name ='CPU used by this session';
--會話級系統性能試圖:
select a.STATISTIC# from v$statname a where a.NAME like '%CPU used by this session%';
找到STATISTIC#,代入到下面
--當前所有session的
select * from v$sesstat b where b.STATISTIC# = &STATISTIC#;
--自己的session的
select * from v$mystat c where c.STATISTIC# = &STATISTIC#;
--或者直接
select b.sid, a.STATISTIC#, a.name, b.value
from v$statname a, v$mystat b
where a.STATISTIC# = b.STATISTIC#;
and a.name like '%xxxxxxx%'
2.sql解析時間(sql解析過程..比較重要,后面專門寫一篇)
select name, sid, value "Total parse Cpu time"
from v$statname a, v$mystat b
where a.name like '%parse%'
and a.statistic# = b.statistic#

3.遞歸調用時間是用在語義分析階段查找數據字典或者PLSQL內部包造成的解析所花的CPU時間
select * from v$statname a where a.NAME like '%recursive cpu%';
實例級和會話級查詢方法同上
4.其它CPU時間:通常占絕大多數,它是執行內存BUFFER搜索,索引和全表掃描涉及的IO操作所占有的CPU
select a.VALUE as "Total CPU",
b.VALUE as "Parse CPU",
c.VALUE as "Recursive CPU",
a.VALUE - b.VALUE - c.VALUE as "Others"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.NAME = 'CPU used by this session'
and b.NAME = 'parse time cpu'
and c.NAME = 'recursive cpu usage';
5.等待常是由于并發,需要等待別的會話處理完獨占的資源后所花的時間,這通常也是最常見的性能問題.
如果等待時間(wait time)占響應時間(Pesponse time)的大多數時,我們需要減小等待時間來提高系統性能。我們需要剝離等待時間來分析和優化等待時間
select d.EVENT, d.TIME_WAITED, d.AVERAGE_WAIT
from v$system_event d
where d.EVENT not in
('pmon timer', 'rdbms ipc message', 'smon timer',
'virtual circuit status', 'SQL*Net message from client')
not in 里面的event通常被認為是不會產生等待的事件
三.相關視圖
1.v$sysstat
這個使徒列出系統統計數據.為找到與每個統計數據號(STATISTIC#)關聯的統計數據
名稱,請參閱V$STATNAME.
列 數據類型 說明
STATISTIC# NUMBER 統計數據號
NAME VARCHAR2 統計數據名
CLASS NUMBER 統計數據類別:1(用戶);2(重做);
4(排隊);8(高速緩存);16(操
作系統);32(并行服務器);64
(SQL);128(調試)
VALUE NUMBER 統計數據值
CLASS NUMBER 統計數據類別:
2.v$sesstat
這個視圖給出用戶會話的統計數據.為了找到與每個統計數據號(STATISTIC#)有關的
統計數據名稱,請參閱V$STATNAME.
列 數據類型 說明
SID NUMBER 會話標識符
STATISTIC# NUMBER 統計數據名(標識符)
VALUE NUMBER 統計數據值
3.v$mystat
這個視圖包含當前會話的統計數據。
列 數據類型 說明
SID NUMBER 當前會話的ID
STATISTIC NUMBER 統計數據號
VALUE NUMBER 統計數據值
4.v$statname
這個視圖顯示列在V$SESSTAT 和V$SYSSTAT 表中的統計數據的解碼統計數據名。詳細信
息,請參閱V$SESSTAT 和SYSSTAT。
列 數據類型 說明
STATISTIC# NUMBER 統計數據號
NAME VARCHAR2 統計數據名。參見表B-13
CLASS NUMBER 1(用戶);2(重做);4(排
隊);8(高速緩存);16(操
作系統);32(并行服務器);
128(調試)
posted on 2010-12-22 22:55
xrzp 閱讀(289)
評論(2) 編輯 收藏 所屬分類:
oracle-優化