Oracle的X$表系列介绍之-X$KSLLCLASS

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 eygle 的 blog

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          1
8 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 chains
sql> 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 bytes
fixed size                   451784 bytes
variable size              37748736 bytes
database buffers           41943040 bytes
redo buffers                 667648 bytes
database mounted.
database opened.
sql> show parameter latch
name                                 type        value
------------------------------------ ----------- ------------------------------
_latch_class_1                       string      10000
_latch_classes                       string      98:1
sql> 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          1
8 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           2
cache buffers chains                                  98           1


更多请参考:
richmond shee, kirtikumar deshpande and k gopalakrishnan的《oracle wait interface》

本文关键:Oracle的X$表系列介绍之-X$KSLLCLASS
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top