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>
阅读(1498) | 评论(0) | 转发(2) |