一.調(diào)優(yōu)的目標:
1.減少響應(yīng)時間
2.減少數(shù)據(jù)庫塊訪問
3.盡量把常用的塊CACHE到內(nèi)存中,提高訪問的速度
4.提高OLTP的吞吐量
5.設(shè)置系統(tǒng)的負載
二.數(shù)據(jù)庫的系統(tǒng)響應(yīng)時間:
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';
化/cputime.jpg)
時間單位:9i以后單位是百萬分之一秒
其中
Service Time = SQL解析時間 + 遞歸調(diào)用時間 + 其他時間
1.視圖的使用
--實例級系統(tǒng)性能視圖:v$sysstat
使用:(以CPU used by this session為例)
select * from v$sysstat t where t.name ='CPU used by this session';
--會話級系統(tǒng)性能試圖:
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.遞歸調(diào)用時間是用在語義分析階段查找數(shù)據(jù)字典或者PLSQL內(nèi)部包造成的解析所花的CPU時間
select * from v$statname a where a.NAME like '%recursive cpu%';
實例級和會話級查詢方法同上
4.其它CPU時間:通常占絕大多數(shù),它是執(zhí)行內(nèi)存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.等待常是由于并發(fā),需要等待別的會話處理完獨占的資源后所花的時間,這通常也是最常見的性能問題.
如果等待時間(wait time)占響應(yīng)時間(Pesponse time)的大多數(shù)時,我們需要減小等待時間來提高系統(tǒng)性能。我們需要剝離等待時間來分析和優(yōu)化等待時間
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通常被認為是不會產(chǎn)生等待的事件
三.相關(guān)視圖
1.v$sysstat
這個使徒列出系統(tǒng)統(tǒng)計數(shù)據(jù).為找到與每個統(tǒng)計數(shù)據(jù)號(STATISTIC#)關(guān)聯(lián)的統(tǒng)計數(shù)據(jù)
名稱,請參閱V$STATNAME.
列 數(shù)據(jù)類型 說明
STATISTIC# NUMBER 統(tǒng)計數(shù)據(jù)號
NAME VARCHAR2 統(tǒng)計數(shù)據(jù)名
CLASS NUMBER 統(tǒng)計數(shù)據(jù)類別:1(用戶);2(重做);
4(排隊);8(高速緩存);16(操
作系統(tǒng));32(并行服務(wù)器);64
(SQL);128(調(diào)試)
VALUE NUMBER 統(tǒng)計數(shù)據(jù)值
CLASS NUMBER 統(tǒng)計數(shù)據(jù)類別:
2.v$sesstat
這個視圖給出用戶會話的統(tǒng)計數(shù)據(jù).為了找到與每個統(tǒng)計數(shù)據(jù)號(STATISTIC#)有關(guān)的
統(tǒng)計數(shù)據(jù)名稱,請參閱V$STATNAME.
列 數(shù)據(jù)類型 說明
SID NUMBER 會話標識符
STATISTIC# NUMBER 統(tǒng)計數(shù)據(jù)名(標識符)
VALUE NUMBER 統(tǒng)計數(shù)據(jù)值
3.v$mystat
這個視圖包含當前會話的統(tǒng)計數(shù)據(jù)。
列 數(shù)據(jù)類型 說明
SID NUMBER 當前會話的ID
STATISTIC NUMBER 統(tǒng)計數(shù)據(jù)號
VALUE NUMBER 統(tǒng)計數(shù)據(jù)值
4.v$statname
這個視圖顯示列在V$SESSTAT 和V$SYSSTAT 表中的統(tǒng)計數(shù)據(jù)的解碼統(tǒng)計數(shù)據(jù)名。詳細信
息,請參閱V$SESSTAT 和SYSSTAT。
列 數(shù)據(jù)類型 說明
STATISTIC# NUMBER 統(tǒng)計數(shù)據(jù)號
NAME VARCHAR2 統(tǒng)計數(shù)據(jù)名。參見表B-13
CLASS NUMBER 1(用戶);2(重做);4(排
隊);8(高速緩存);16(操
作系統(tǒng));32(并行服務(wù)器);
128(調(diào)試)
posted on 2010-12-22 22:55
xrzp 閱讀(279)
評論(2) 編輯 收藏 所屬分類:
oracle-優(yōu)化