Oracle的X$表系列介紹之-X$KSLLCLASS
2024-08-29 13:29:11
供稿:網友
oracle的x$表系列介紹之-x$ksllclass作者:eygle出處:http://blog.eygle.com日期:january 16, 2005
« hray納斯達克的ipo歷程 | blog首頁 | windows xp中如何設置自動登錄 »
x$ksllclass--[k]ernel [s]ervice [l]ock [l]atches [class]
從oracle9ir2開始,oracle允許對latch進行分類,不同的分類可以用于不同的_spin_count值。
這就避免了之前版本,一旦修改_spin_count參數就會影響所有latch的問題。從而可以在一定程度上控制該參數對于cpu的過量耗用。
以下是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.
比如我們的數據庫系統經歷較為嚴重的cache buffers chains競爭,為了降低其sleeep次數,我們可以對該latch進行針對性分類邦定,單獨修改其_spin_count值。
sql> select latch#,name from v$latchname where name='cache buffers chains'; latch# name---------- ---------------------------------------------------------------- 98 cache buffers chains
我們可以如下修改初始化參數,而后重新啟動數據庫:
_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>
由此,單獨控制一些重要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
更多請參考:
richmond shee, kirtikumar deshpande and k gopalakrishnan的《oracle wait interface》