詳談Oracle優(yōu)化CPU使用率 |
發(fā)布時間: 2012/8/13 16:23:18 |
本人很喜歡Oracle,在工作中也很喜歡總結(jié)關(guān)于Oracle優(yōu)化CPU使用率的經(jīng)驗教訓(xùn),下面就這個問題來詳細說說吧。CPU是服務(wù)器的一項重要資源,服務(wù)器良好的工作狀態(tài)是在工作高峰時CPU的使用率在90%以上。如果空閑時間Oracle優(yōu)化CPU使用率就在90%以上,說明服務(wù)器缺乏CPU資源;如果工作高峰時Oracle優(yōu)化CPU使用率仍然很低,說明服務(wù)器CPU資源還比較富余。 查看Oracle優(yōu)化CPU使用率 使用操作相同命令可以看到CPU的使用情況,一般Unix操作系統(tǒng)的服務(wù)器,可以使用“sar u”命令查看Oracle優(yōu)化CPU使用率,Windows NT操作系統(tǒng)的服務(wù)器,可以使用性能管理器來查看CPU的使用率。 查看數(shù)據(jù)庫使用CPU的時間 可以通過查看V$SYSSTAT數(shù)據(jù)字典中“CPU used by this session”統(tǒng)計項得知Oracle數(shù)據(jù)庫使用的CPU時間,查看“OS User level CPU time”統(tǒng)計項得知操作系統(tǒng)的用戶態(tài)下CPU時間,查看“OS System call CPU time”統(tǒng)計項得知操作系統(tǒng)的系統(tǒng)態(tài)下CPU時間,操作系統(tǒng)總的CPU時間就是用戶態(tài)和系統(tǒng)態(tài)時間之和。如果Oracle數(shù)據(jù)庫使用的CPU時間占操作系統(tǒng)總的CPU時間90%以上,說明服務(wù)器CPU基本上被Oracle數(shù)據(jù)庫使用著。反之,則說明服務(wù)器CPU被其它程序占用過多,Oracle數(shù)據(jù)庫無法得到更多的CPU時間。 數(shù)據(jù)庫管理員還可以通過查看V$SYSSTAT數(shù)據(jù)字典來獲得當(dāng)前連接Oracle數(shù)據(jù)庫各個會話占用的CPU時間,從而得知什么會話耗用服務(wù)器CPU比較多。出現(xiàn)CPU資源不足的情況是很多的,SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。 查看SQL語句的解析情況 數(shù)據(jù)庫管理員可以執(zhí)行下述語句來查看SQL語句的解析情況: SELECT * FROM V$SYSSTAT WHERE NAME IN ('parse time cpu', 'parse time elapsed', 'parse count (hard)'); 這里“parse time cpu”是系統(tǒng)服務(wù)時間,“parse time elapsed”是響應(yīng)時間,用戶等待時間waite time = parse time elapsed - parse time cpu。 由此可以得到用戶SQL語句平均解析等待時間=waite time / parse count。這個平均等待時間應(yīng)該接近于0,如果平均解析等待時間過長,數(shù)據(jù)庫管理員可以通過下述語句來發(fā)現(xiàn)是什么SQL語句解析效率比較低。 SELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA ORDER BY PARSE_CALLS; 程序員可以優(yōu)化這些語句,或者增加Oracle參數(shù)SESSION_CACHED_CURSORS的值。以上介紹Oracle優(yōu)化CPU使用率。 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |