Chinaunix首页 | 论坛 | 博客
  • 博客访问: 969688
  • 博文数量: 584
  • 博客积分: 2293
  • 博客等级: 大尉
  • 技术积分: 3045
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 11:15
文章分类

全部博文(584)

文章存档

2012年(532)

2011年(47)

2009年(5)

我的朋友

分类:

2012-07-11 22:52:42

原文地址:SGA中的相关变量 作者:TOMSYAN

SGA中的fixed area中包含了大量变量,这些变量名字是隐藏的而且没有必要知道,可以通过x$ksmfsv 表中获得这些变量相关信息。
 
SQL> desc x$ksmfsv
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ADDR                                               RAW(8)
 INDX                                               NUMBER
 INST_ID                                            NUMBER
 KSMFSNAM                                           VARCHAR2(64)
 KSMFSTYP                                           VARCHAR2(64)
 KSMFSADR                                           RAW(8)
 KSMFSSIZ                                           NUMBER
 x$ksmmem 里含有x$ksmfsv相关变量的当前值。
SQL> desc x$ksmmem
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ADDR                                               RAW(8)
 INDX                                               NUMBER
 INST_ID                                            NUMBER
 KSMMMVAL                                           RAW(8)
通过x$ksmfsv.KSMFSADR  与 x$ksmmem.ADDR想关联,可以查询相关变量的值。
可以通过如下查询得到当前变量的值:
 
SQL>
SQL> select fsv.KSMFSNAM,sga.*
  2  from x$ksmfsv fsv, x$ksmmem sga
  3  where sga.addr=fsv.KSMFSADR
  4   and sga.KSMMMVAL<>'00' and rownum<=10;
KSMFSNAM             ADDR           INDX    INST_ID KSMMMVAL
-------------------- -------- ---------- ---------- --------
ksmsgf_              03C384E0          0          1 00000001
ksmvsg_              03C384E4          1          1 00000EEE
ksmver_              03C384E8          2          1 0A200100
ksmismf_             03C384EC          3          1 00000001
ksmgsp_              03C38508         10          1 03C3A018
ksmsth_              03C39ECC       1659          1 04E9AA90
ksmfst_              03C39ED0       1660          1 4F867010
ksmcrttimestamp_     03C39F78       1702          1 0026DE7D
ksmanotscl_          03C3A010       1740          1 00000001
ksmgsg_              03C3A018       1742          1 03C38510
已选择10行。

可以看到变量ksmsgf_ 当前的值为 0x00000001
 
也可以通过dumpvar来查询变量的值:
SQL> oradebug dumpvar sga ksmsgf_
ksmsgft ksmsgf_ [3C384E0, 3C384E4) = 00000001
 
当然还可以使用peek来查询。
SQL> oradebug peek 0x03C384E0 4
[3C384E0, 3C384E4) = 00000001
 
可以通过setvar来改变变量的值(千万不要再生产环境修改变量的值):
 
SQL> oradebug setvar sga ksmsgf_  0x00000002
BEFORE: [3C384E0, 3C384E4) = 00000000
AFTER:  [3C384E0, 3C384E4) = 00000002
SQL>
SQL> select fsv.KSMFSNAM,sga.*
  2  from x$ksmfsv fsv, x$ksmmem sga
  3  where sga.addr=fsv.KSMFSADR
  4   and sga.KSMMMVAL<>'00' and rownum<=10;
KSMFSNAM             ADDR           INDX    INST_ID KSMMMVAL
-------------------- -------- ---------- ---------- --------
ksmsgf_              03C384E0          0          1 00000002
ksmvsg_              03C384E4          1          1 00000EEE
ksmver_              03C384E8          2          1 0A200100
ksmismf_             03C384EC          3          1 00000001
ksmgsp_              03C38508         10          1 03C3A018
ksmsth_              03C39ECC       1659          1 04E9AA90
ksmfst_              03C39ED0       1660          1 4F867010
ksmcrttimestamp_     03C39F78       1702          1 0026DE7D
ksmanotscl_          03C3A010       1740          1 00000001
ksmgsg_              03C3A018       1742          1 03C38510
已选择10行。
SQL>
阅读(930) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~