Oracle優(yōu)化CPU的使用率的具體表現(xiàn)
我個(gè)人對(duì)Oracle很是喜歡,同時(shí)在實(shí)際工作中也十分喜歡Oracle優(yōu)化CPU的使用率的相關(guān)經(jīng)驗(yàn)教訓(xùn),以下就是以這個(gè)問(wèn)題來(lái)詳細(xì)說(shuō)說(shuō)吧。CPU是服務(wù)器的一項(xiàng)重要資源,服務(wù)器良好的工作狀態(tài)是在工作高峰時(shí)CPU的使用率在90%以上。
如果空閑時(shí)間Oracle優(yōu)化CPU使用率就在90%以上,說(shuō)明服務(wù)器缺乏CPU資源;如果工作高峰時(shí)Oracle優(yōu)化CPU使用率仍然很低,說(shuō)明服務(wù)器CPU資源還比較富余。
查看Oracle優(yōu)化CPU使用率
使用操作相同命令可以看到CPU的使用情況,一般Unix操作系統(tǒng)的服務(wù)器,可以使用“sar u”命令查看Oracle優(yōu)化CPU使用率,Windows NT操作系統(tǒng)的服務(wù)器,可以使用性能管理器來(lái)查看CPU的使用率。
查看數(shù)據(jù)庫(kù)使用CPU的時(shí)間
可以通過(guò)查看V$SYSSTAT數(shù)據(jù)字典中b“CPU used by this session”統(tǒng)計(jì)項(xiàng)得知Oracle數(shù)據(jù)庫(kù)使用的CPU時(shí)間,查看“OS User level CPU time”統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)的用戶態(tài)下CPU時(shí)間,查看“OS System call CPU time”統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)的系統(tǒng)態(tài)下CPU時(shí)間,操作系統(tǒng)總的CPU時(shí)間就是用戶態(tài)和系統(tǒng)態(tài)時(shí)間之和。
如果Oracle數(shù)據(jù)庫(kù)使用的CPU時(shí)間占操作系統(tǒng)總的CPU時(shí)間90%以上,說(shuō)明服務(wù)器CPU基本上被Oracle數(shù)據(jù)庫(kù)使用著。反之,則說(shuō)明服務(wù)器CPU被其它程序占用過(guò)多,Oracle數(shù)據(jù)庫(kù)無(wú)法得到更多的CPU時(shí)間。
數(shù)據(jù)庫(kù)管理員還可以通過(guò)查看V$SYSSTAT數(shù)據(jù)字典來(lái)獲得當(dāng)前連接Oracle數(shù)據(jù)庫(kù)各個(gè)會(huì)話占用的CPU時(shí)間,從而得知什么會(huì)話耗用服務(wù)器CPU比較多。出現(xiàn)CPU資源不足的情況是很多的,SQL語(yǔ)句的重解析、低效率的SQL語(yǔ)句、鎖沖突都會(huì)引起CPU資源不足。
查看SQL語(yǔ)句的解析情況
數(shù)據(jù)庫(kù)管理員可以執(zhí)行下述語(yǔ)句來(lái)查看SQL語(yǔ)句的解析情況:
- SELECT * FROM V$SYSSTAT
- WHERE NAME IN
- ('parse time cpu', 'parse time elapsed', 'parse count (hard)');
這里“parse time cpu”是系統(tǒng)服務(wù)時(shí)間,“parse time elapsed”是響應(yīng)時(shí)間,用戶等待時(shí)間waite time = parse time elapsed - parse time cpu。
由此可以得到用戶SQL語(yǔ)句平均解析等待時(shí)間=waite time / parse count。這個(gè)平均等待時(shí)間應(yīng)該接近于0,如果平均解析等待時(shí)間過(guò)長(zhǎng),數(shù)據(jù)庫(kù)管理員可以通過(guò)下述語(yǔ)句來(lái)發(fā)現(xiàn)是什么SQL語(yǔ)句解析效率比較低。
- SELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA
- ORDER BY PARSE_CALLS;
程序員可以優(yōu)化這些語(yǔ)句,或者增加Oracle參數(shù)SESSION_CACHED_CURSORS的值。以上介紹Oracle優(yōu)化CPU使用率。
【編輯推薦】
- 對(duì)Oracle SQL到DB2 SQL移植的淺析
- Oracle 數(shù)據(jù)庫(kù)的SQL的描述
- Oracle數(shù)據(jù)字典的實(shí)操
- Oracle數(shù)據(jù)庫(kù)里重復(fù)沒(méi)有用的數(shù)據(jù)如何刪除
- Oracle 多表關(guān)聯(lián)如何更新多個(gè)字段