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