Oracle的X$表系列介紹之-X$KSLLCLASS
2024-08-29 13:44:52
供稿:網(wǎng)友
Oracle的X$表系列介紹之-X$KSLLCLASS作者:eygle出處:http://blog.eygle.com日期:January 16, 2005
« HRAY納斯達(dá)克的ipO歷程 Blog首頁(yè) Windows xp中如何設(shè)置自動(dòng)登錄 »
X$KSLLCLASS--[K]ernel [S]ervice [L]ock [L]atches [CLASS]
從Oracle9iR2開始,Oracle答應(yīng)對(duì)Latch進(jìn)行分類,不同的分類可以用于不同的_SPIN_COUNT值。
這就避免了之前版本,一旦修改_SPIN_COUNT參數(shù)就會(huì)影響所有Latch的問(wèn)題。從而可以在一定程度上控制該參數(shù)對(duì)于CPU的過(guò)量耗用。
以下是x$ksllclass的查詢輸出:
SQL> select indx, spin, yield, waittime from x$ksllclass; INDX SPIN YIELD WAITTIME---------- ---------- ---------- ---------- 0 20000 0 1 1 20000 0 1 2 20000 0 1 3 20000 0 1 4 20000 0 1 5 20000 0 1 6 20000 0 1 7 20000 0 18 rows selected.
比如我們的數(shù)據(jù)庫(kù)系統(tǒng)經(jīng)歷較為嚴(yán)重的cache buffers chains競(jìng)爭(zhēng),為了降低其SLEEEP次數(shù),我們可以對(duì)該Latch進(jìn)行針對(duì)性分類邦定,單獨(dú)修改其_SPIN_COUNT值。
SQL> select latch#,name from v$latchname where name='cache buffers chains'; LATCH# NAME---------- ---------------------------------------------------------------- 98 cache buffers chains
我們可以如下修改初始化參數(shù),而后重新啟動(dòng)數(shù)據(jù)庫(kù):
_latch_class_1 = "10000"
_latch_classes = "98:1"
SQL> select latch#,name from v$latchname where name='cache buffers chains'; LATCH# NAME---------- ---------------------------------------------------------------- 98 cache buffers chainsSQL> alter system set "_latch_class_1"=10000 scope=spfile;System altered.SQL> alter system set "_latch_classes"="98:1" scope=spfile;System altered.SQL> startup force;ORACLE instance started.Total System Global Area 80811208 bytesFixed Size 451784 bytesVariable Size 37748736 bytesDatabase Buffers 41943040 bytesRedo Buffers 667648 bytesDatabase mounted.Database opened.SQL> show parameter latchNAME TYPE VALUE------------------------------------ ----------- ------------------------------_latch_class_1 string 10000_latch_classes string 98:1SQL> select indx, spin, yield, waittime from x$ksllclass; INDX SPIN YIELD WAITTIME---------- ---------- ---------- ---------- 0 20000 0 1 1 10000 0 1 2 20000 0 1 3 20000 0 1 4 20000 0 1 5 20000 0 1 6 20000 0 1 7 20000 0 18 rows selected.SQL>
由此,單獨(dú)控制一些重要Latch成為可能。
SQL> select a.kslldnam, b.kslltnum, b.class_ksllt 2 from x$kslld a, x$ksllt b 3 where a.kslldadr = b.addr 4 and b.class_ksllt > 0;KSLLDNAM KSLLTNUM CLASS_KSLLT---------------------------------------------- ---------- -----------PRocess allocation 3 2cache buffers chains 98 1
更多請(qǐng)參考:
Richmond Shee, Kirtikumar Deshpande and K Gopalakrishnan的《Oracle Wait Interface》