Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

91

积分

0

好友

3

主题
1#
发表于 2012-2-23 13:41:18 | 查看: 10238| 回复: 16
请问一下v$session 里面的三个列
BLOCKING_SESSION_STATUS                           VARCHAR2(11)
BLOCKING_INSTANCE                                 NUMBER
BLOCKING_SESSION                                  NUMBER

它们的值从哪里得来的?

谢谢!
2#
发表于 2012-2-23 14:06:27
select * from v$fixed_view_definition where view_name='GV$SESSION'
  1. select pid, serial#, status
  2.   from gv$process_memory_detail_prog
  3. where inst_id = USERENV('Instance')
  4.   select s.inst_id,
  5.          s.addr,
  6.          s.indx,
  7.          s.ksuseser,
  8.          s.ksuudses,
  9.          s.ksusepro,
  10.          s.ksuudlui,
  11.          s.ksuudlna,
  12.          s.ksuudoct,
  13.          s.ksusesow,
  14.          decode(s.ksusetrn, hextoraw('00'), null, s.ksusetrn),
  15.          decode(s.ksqpswat, hextoraw('00'), null, s.ksqpswat),
  16.          decode(bitand(s.ksuseidl, 11),
  17.                  1,
  18.                  'ACTIVE',
  19.                  0,
  20.                  decode(bitand(s.ksuseflg, 4096),
  21.                         0,
  22.                         'INACTIVE',
  23.                         'CACHED'),
  24.                  2,
  25.                  'SNIPED',
  26.                  3,
  27.                  'SNIPED',
  28.                  'KILLE
  29. D'),
  30.          decode(s.ksspatyp,
  31.                 1,
  32.                 'DEDICATED',
  33.                 2,
  34.                 'SHARED',
  35.                 3,
  36.                 'PSEUDO',
  37.                 4,
  38.                 'POOLED',
  39.                 'NONE'),
  40.          s.ksuudsid,
  41.          s.ksuudsna,
  42.          s.ksuseunm,
  43.          s.ksusepid,
  44.          s.ksusemnm,
  45.          s.ksusemnp,
  46.          s.ksusetid,
  47.          s.ksusepnm,
  48.          decode(bitand(s.ksuseflg, 19),
  49.                 17,
  50.                 'BACKGROUND',
  51.                 1,
  52.                 'USER',
  53.                 2,
  54.                 'RECURSIVE',
  55.                 '?'),
  56.          s.ksusesql,
  57.          s.ksusesqh,
  58.          s.ksusesqi,
  59.          decode(s.ksusesch, 65535, to_number(null), s.ksusesch),
  60.          s.ksusesesta,
  61.          decode(s.ksuseseid, 0, to_number(null), s.ksuseseid),
  62.          s.ksusepsq,
  63.          s.ksusepha,
  64.          s.ksusepsi,
  65.          decode(s.ksusepch, 65535, to_number(null), s.ksusepch),
  66.          s.ksusepesta,
  67.          decode(s.ksusepeid, 0, to_number(null), s.ksusepeid),
  68.          decode(s.ksusepeo, 0, to_number(null), s.ksusepeo),
  69.          decode(s.ksusepeo, 0, to_number(null), s.ksusepes),
  70.          decode(s.ksusepco,
  71.                 0,
  72.                 to_number(null),
  73.                 decode(bitand(s.ksusstmbv, power(2, 11)),
  74.                        power(2, 11),
  75.                        s.ksusepco,
  76.                        to_number(null))),
  77.          decode(s.ksusepcs,
  78.                 0,
  79.                 to_number(null),
  80.                 decode(bitand(s.ksusstmbv, power(2, 11)),
  81.                        power(2, 11),
  82.                        s.ksusepcs,
  83.                        to_number(null))),
  84.          s.ksuseapp,
  85.          s.ksuseaph,
  86.          s.ksuseact,
  87.          s.ks useach,
  88.          s.ksusecli,
  89.          s.ksusefix,
  90.          s.ksuseobj,
  91.          s.ksusefil,
  92.          s.ksuseblk,
  93.          s.ksuseslt,
  94.          s.ksuseorafn,
  95.          s.ksuseltm,
  96.          s.ksusectm,
  97.          decode(bitand(s.ksusepxopt, 12), 0, 'NO', 'YES'),
  98.          dec ode(s.ksuseft, 2, 'SESSION', 4, 'SELECT', 8, 'TRANSACTIONAL', 'NONE'),
  99.          decode(s.ksusefm,
  100.                 1,
  101.                 'BASIC',
  102.                 2,
  103.                 'PRECONNECT',
  104.                 4,
  105.                 'PREPARSE',
  106.                 'NONE'),
  107.          decode(s.ksusefs, 1, 'YES', 'NO'),
  108.          s.ksu segrp,
  109.          decode(bitand(s.ksusepxopt, 4),
  110.                 4,
  111.                 'ENABLED',
  112.                 decode(bitand(s.ksusepxopt, 8),
  113.                        8,
  114.                        'FORCED',
  115.                        'DISABLED')),
  116.          decode(bitand(s.ksusepxopt, 2),
  117.                 2,
  118.                 'FORCED',
  119.                 decode(bitand(s.ksusepxo pt, 1),
  120.                        1,
  121.                        'DISABLED',
  122.                        'ENABLED')),
  123.          decode(bitand(s.ksusepxopt, 32),
  124.                 32,
  125.                 'FORCED',
  126.                 decode(bitand(s.ksusepxopt, 16),
  127.                        16,
  128.                        'DISABLED',
  129.                        'ENABLED')),
  130.          s.ksusecqd,
  131.          s.ksuseclid,
  132.          decode(s.ksuseblocker,                => BLOCKING_SESSION_STATUS
  133.                 4294967295,
  134.                 'UNKNOWN',
  135.                 4294967294,
  136.                 'UNKNOWN',
  137.                 4294967293,
  138.                 'UNKNOWN',
  139.                 4294967292,
  140.                 'NO HOLDER',
  141.                 4294967291,
  142.                 'NOT IN WAIT',
  143.                 'VALID'),
  144.          decode(s.ksuseblocker,
  145.                 42949 67295,
  146.                 to_number(null),
  147.                 4294967294,
  148.                 to_number(null),
  149.                 4294967293,
  150.                 to_number(null),
  151.                 4294967292,
  152.                 to_number(null),
  153.                 4294967291,
  154.                 to_number(null),
  155.                 bitand(s.ksuseblocker, 2147418112) / 65536),           => BLOCKING_INSTANCE
  156.          decode(s.ksuseblocker,
  157.                 4294967295,
  158.                 to_number(null),
  159.                 4294967294,
  160.                 to_number(null),
  161.                 4294967293,
  162.                 to_number(null),
  163.                 4294967292,
  164.                 to_number(null),
  165.                 4294967291,
  166.                 to_number(nu ll),
  167.                 bitand(s.ksuseblocker, 65535)),                        => BLOCKING_SESSION         
  168.          decode(s.ksusefblocker,
  169.                  4294967295,
  170.                  'UNKNOWN',
  171.                  4294967294,
  172.                  'UNKNOWN',
  173.                  4294967293,
  174.                  'UNKNOWN',
  175.                  4294967292,
  176.                  'NO HOLDER',
  177.                  4294967291,
  178.                  'NOT
  179. IN WAIT',
  180.                  'VALID'),                                           => FINAL_BLOCKING_SESSION_STATUS
  181.          decode(s.ksusefblocker,
  182.                 4294967295,
  183.                 to_number(null),
  184.                 4294967294,
  185.                 to_number(null),
  186.                 4294967293,
  187.                 to_number(null),
  188.                 4294967292,
  189.                 to_number(null),
  190.                 4294967291,
  191.                 to_ number(null),
  192.                 bitand(s.ksusefblocker, 2147418112) / 65536),              =>FINAL_BLOCKING_INSTANCE
  193.          decode(s.ksusefblocker,
  194.                 4294967295,
  195.                 to_number(null),
  196.                 4294967294,
  197.                 to_number(null),
  198.                 4294967293,
  199.                 to_number(null),
  200.                 42949 67292,
  201.                 to_number(null),
  202.                 4294967291,
  203.                 to_number(null),
  204.                 bitand(s.ksusefblocker, 65535)),                            => FINAL_BLOCKING_SESSION
  205.          w.kslwtseq,                                          
  206.          w.kslwtevt,
  207.          e.kslednam,
  208.          e.ksledp1,
  209.          w.kslwtp1,
  210.          w.kslwtp1r,
  211.          e.ksledp2,
  212.          w.kslwt p2,
  213.          w.kslwtp2r,
  214.          e.ksledp3,
  215.          w.kslwtp3,
  216.          w.kslwtp3r,
  217.          e.ksledclassid,
  218.          e.ksledclass#,
  219.          e.ksledclass,
  220.          decode(w.kslwtinwait,
  221.                 0,
  222.                 decode(bitand(w.kslwtflags, 256),
  223.                        0,
  224.                        -2,
  225.                        decode(round(w.kslwtstime / 10000),
  226.                               0,
  227.                               -1,
  228.                               round(w.kslwtstime / 10000))),
  229.                 0),
  230.          decode(w.kslwtinw ait,
  231.                 0,
  232.                 round((w.kslwtstime + w.kslwtltime) / 1000000),
  233.                 round(w.kslwtstime / 1000000)),
  234.          decode(w.kslwtinwait,
  235.                  1,
  236.                  'WAITING',
  237.                  decode(bitand(w.kslwtflags, 256),
  238.                          0,
  239.                          'WAITED UNKNOWN T
  240. IME',
  241.                          decode(round(w.kslwtstime / 10000),
  242.                                 0,
  243.                                 'WAITED SHORT TIME',
  244.                                 'WAITED KNOWN TIME'))),
  245.          w.kslwtstime,
  246.          decode(w.kslwtinwait,
  247.                 0,
  248.                 to_number(null),
  249.                 decode(bitand(w.kslwtf lags, 64), 64, 0, w.kslwttrem)),
  250.          w.kslwtltime,
  251.          s.ksusesvc,
  252.          decode(bitand(s.ksuseflg2, 32), 32, 'ENABLED', 'DISABLED'),
  253.          decode(bitand(s.ksuseflg2, 64), 64, 'TRUE', 'FALSE'),
  254.          decode(bi tand(s.ksuseflg2, 128), 128, 'TRUE', 'FALSE'),
  255.          decode(bitand(s.ksuseflg2, 65536) +
  256.                 bitand(s.ksuseflg2, 131072),
  257.                 65536,
  258.                 'ALL EXEC',
  259.                 131072,
  260.                 'NEVER',
  261.                 0,
  262.                 'FIRST EXEC'),
  263.          s.ksuudsae,
  264.          s.ks usecre,
  265.          s.ksusecsn,
  266.          s.ksuseecid
  267.           from x$ksuse s, x$ksled e, x$kslwt w
  268.          where bitand(s.ksspaflg, 1) != 0
  269.            and bitand(s.ksuseflg, 1) != 0
  270.            and s.indx = w.kslwtsid
  271.            and w.kslwtevt = e.indx
复制代码

回复 只看该作者 道具 举报

3#
发表于 2012-2-23 14:10:22
s.ksusefblocker  来源于       x$ksuse s=》  X$KSUSE - [SE]ssion Info 存放session信息的内部视图

s.ksusefblocker需要做位图与操作 才能看懂

回复 只看该作者 道具 举报

4#
发表于 2012-2-23 14:15:28
进一步请问:

s.ksusefblocker 这个列的值是如何得到的?

谢谢!

回复 只看该作者 道具 举报

5#
发表于 2012-2-23 14:16:21
有意思的是v$fixed_view_definition  这个视图的列view_definition 只能返回 4000 个char, 所以 从这个视图得到的gv$session动态性能的视图定义是不完整的

大家可以 想想 如何在这种情况下得到  gv$session视图的DDL定义, 挺有意思的。

回复 只看该作者 道具 举报

6#
发表于 2012-2-23 14:25:09
s.ksusefblocker  来源于       x$ksuse

X$ view是oracle的内部视图, 它们是对 oracle实例 一些内存结构 或变量的反映。

    x$ksuse 的信息来源于 shared pool中的 session array ,这些arrary信息是 oracle服务进程自行生成和维护的

ksusga_session_ksuse.png

回复 只看该作者 道具 举报

7#
发表于 2012-2-23 14:28:53
具体里面的值就没办法知道了吧?

回复 只看该作者 道具 举报

8#
发表于 2012-2-23 14:36:04

回复 7# 的帖子

可以dump 出来看, 但这没有意义 , 直接使用v$session 即可 。

回复 只看该作者 道具 举报

9#
发表于 2012-2-23 15:06:46
请问怎么查fixed tables的统计信息?

回复 只看该作者 道具 举报

10#
发表于 2012-2-23 15:55:04

回复 9# 的帖子

请问怎么查fixed tables的统计信息?

这是另一个问题了 ,请再开一个帖子

回复 只看该作者 道具 举报

11#
发表于 2012-2-23 16:03:46
看到定义中有“ksuseser”这一个子串,就用一下sql
select * from v$sqltext_with_newlines where sql_text like '%ksuseser%'
查询了一下,发现有几个sql
ADDRESS          HASH_VALUE SQL_ID                                  COMMAND_TYPE      PIECE SQL_TEXT
---------------- ---------- --------------------------------------- ------------ ---------- ---------------
000000007A186B20 3659408693 5ax0q1md1w99p                                      3          0 select s.inst_i
000000007BFC8B08 2564233431 dc56d5kcdf66r                                      2         12 t = s.ksuseser
000000007BFD0BE8 3879835391 3d0537zmn35rz                                      2         14 om (select type

然后就了 SQL_ID=5ax0q1md1w99p 的那一个进行一下查询
select sql_id,sql_text from v$sqltext_with_newlines where sql_id='5ax0q1md1w99p' order by piece
其下出现有68个pieces。其中 v$sqltext_with_newlines 的sql_text为VARCHAR2(64),68*64=4352 > 4000
应该与v$fixed_view_definition的值多一些
SQL> select sql_id,sql_text from v$sqltext_with_newlines where sql_id='5ax0q1md1w99p' order by piece;

SQL_ID               SQL_TEXT
-------------------- ----------------------------------------------------------------
5ax0q1md1w99p        select s.inst_id,s.addr,s.indx,s.ksuseser,s.ksuudses,s.ksusepro,
5ax0q1md1w99p        s.ksuudlui,s.ksuudlna,s.ksuudoct,s.ksusesow, decode(s.ksusetrn,h
5ax0q1md1w99p        extoraw('00'),null,s.ksusetrn),decode(s.ksqpswat,hextoraw('00'),
5ax0q1md1w99p        null,s.ksqpswat),decode(bitand(s.ksuseidl,11),1,'ACTIVE',0,decod
5ax0q1md1w99p        e(bitand(s.ksuseflg,4096),0,'INACTIVE','CACHED'),2,'SNIPED',3,'S
5ax0q1md1w99p        NIPED', 'KILLED'),decode(s.ksspatyp,1,'DEDICATED',2,'SHARED',3,'
5ax0q1md1w99p        PSEUDO',4,'POOLED','NONE'),  s.ksuudsid,s.ksuudsna,s.ksuseunm,s.
5ax0q1md1w99p        ksusepid, s.ksusemnm,s.ksusemnp,s.ksusetid,s.ksusepnm, decode(bi
5ax0q1md1w99p        tand(s.ksuseflg,19),17,'BACKGROUND',1,'USER',2,'RECURSIVE','?'),
5ax0q1md1w99p         s.ksusesql, s.ksusesqh, s.ksusesqi, decode(s.ksusesch, 65535, t
5ax0q1md1w99p        o_number(null), s.ksusesch),  s.ksusesesta,  decode(s.ksuseseid,
5ax0q1md1w99p         0, to_number(null), s.ksuseseid),  s.ksusepsq, s.ksusepha, s.ks
5ax0q1md1w99p        usepsi,  decode(s.ksusepch, 65535, to_number(null), s.ksusepch),
5ax0q1md1w99p          s.ksusepesta,  decode(s.ksusepeid, 0, to_number(null), s.ksuse
5ax0q1md1w99p        peid),  decode(s.ksusepeo,0,to_number(null),s.ksusepeo),  decode
5ax0q1md1w99p        (s.ksusepeo,0,to_number(null),s.ksusepes),  decode(s.ksusepco,0,
5ax0q1md1w99p        to_number(null),         decode(bitand(s.ksusstmbv, power(2,11))
5ax0q1md1w99p        , power(2,11), s.ksusepco,                to_number(null))),  de
5ax0q1md1w99p        code(s.ksusepcs,0,to_number(null),         decode(bitand(s.ksuss
5ax0q1md1w99p        tmbv, power(2,11)), power(2,11), s.ksusepcs,                to_n
5ax0q1md1w99p        umber(null))),  s.ksuseapp, s.ksuseaph, s.ksuseact, s.ksuseach,
5ax0q1md1w99p        s.ksusecli, s.ksusefix, s.ksuseobj, s.ksusefil, s.ksuseblk, s.ks
5ax0q1md1w99p        useslt,  s.ksuseorafn, s.ksuseltm, s.ksusectm,decode(bitand(s.ks
5ax0q1md1w99p        usepxopt, 12),0,'NO','YES'),decode(s.ksuseft, 2,'SESSION', 4,'SE
5ax0q1md1w99p        LECT',8,'TRANSACTIONAL','NONE'),decode(s.ksusefm,1,'BASIC',2,'PR
5ax0q1md1w99p        ECONNECT',4,'PREPARSE','NONE'),decode(s.ksusefs, 1, 'YES', 'NO')
5ax0q1md1w99p        ,s.ksusegrp,decode(bitand(s.ksusepxopt,4),4,'ENABLED',decode(bit
5ax0q1md1w99p        and(s.ksusepxopt,8),8,'FORCED','DISABLED')),decode(bitand(s.ksus
5ax0q1md1w99p        epxopt,2),2,'FORCED',decode(bitand(s.ksusepxopt,1),1,'DISABLED',
5ax0q1md1w99p        'ENABLED')),decode(bitand(s.ksusepxopt,32),32,'FORCED',decode(bi
5ax0q1md1w99p        tand(s.ksusepxopt,16),16,'DISABLED','ENABLED')),  s.ksusecqd, s.
5ax0q1md1w99p        ksuseclid,  decode(s.ksuseblocker,4294967295,'UNKNOWN',  4294967
5ax0q1md1w99p        294, 'UNKNOWN',4294967293,'UNKNOWN',4294967292,'NO HOLDER',  429
5ax0q1md1w99p        4967291,'NOT IN WAIT','VALID'),decode(s.ksuseblocker, 4294967295
5ax0q1md1w99p        ,to_number(null),4294967294,to_number(null), 4294967293,to_numbe
5ax0q1md1w99p        r(null), 4294967292,to_number(null),4294967291,  to_number(null)
5ax0q1md1w99p        ,bitand(s.ksuseblocker, 2147418112)/65536),decode(s.ksuseblocker
5ax0q1md1w99p        , 4294967295,to_number(null),4294967294,to_number(null), 4294967
5ax0q1md1w99p        293,to_number(null), 4294967292,to_number(null),4294967291,  to_
5ax0q1md1w99p        number(null),bitand(s.ksuseblocker, 65535)),  decode(s.ksusefblo
5ax0q1md1w99p        cker,4294967295,'UNKNOWN',  4294967294, 'UNKNOWN',4294967293,'UN
5ax0q1md1w99p        KNOWN',4294967292,'NO HOLDER',  4294967291,'NOT IN WAIT','VALID'
5ax0q1md1w99p        ),decode(s.ksusefblocker,4294967295,to_number(null),4294967294,t
5ax0q1md1w99p        o_number(null), 4294967293,to_number(null), 4294967292,to_number
5ax0q1md1w99p        (null),4294967291,  to_number(null),bitand(s.ksusefblocker, 2147
5ax0q1md1w99p        418112)/65536),decode(s.ksusefblocker,4294967295,to_number(null)
5ax0q1md1w99p        ,4294967294,to_number(null), 4294967293,to_number(null), 4294967
5ax0q1md1w99p        292,to_number(null),4294967291,  to_number(null),bitand(s.ksusef
5ax0q1md1w99p        blocker, 65535)),  w.kslwtseq,w.kslwtevt,e.kslednam,e.ksledp1,w.
5ax0q1md1w99p        kslwtp1,w.kslwtp1r, e.ksledp2,w.kslwtp2,w.kslwtp2r,e.ksledp3,w.k
5ax0q1md1w99p        slwtp3,w.kslwtp3r, e.ksledclassid,e.ksledclass#,e.ksledclass, de
5ax0q1md1w99p        code(w.kslwtinwait,        0,decode(bitand(w.kslwtflags,256),
5ax0q1md1w99p                      0,-2,                 decode(round(w.kslwtstime/10
5ax0q1md1w99p        000),                        0,-1,                        round(
5ax0q1md1w99p        w.kslwtstime/10000))),        0), decode(w.kslwtinwait,0,round((
5ax0q1md1w99p        w.kslwtstime+w.kslwtltime)/1000000),  round(w.kslwtstime/1000000
5ax0q1md1w99p        )), decode(w.kslwtinwait,1,'WAITING',  decode(bitand(w.kslwtflag
5ax0q1md1w99p        s,256),0,'WAITED UNKNOWN TIME',   decode(round(w.kslwtstime/1000
5ax0q1md1w99p        0),0,'WAITED SHORT TIME',    'WAITED KNOWN TIME'))),w.kslwtstime
5ax0q1md1w99p        , decode(w.kslwtinwait,0,to_number(null),  decode(bitand(w.kslwt
5ax0q1md1w99p        flags,64),64,0,w.kslwttrem)), w.kslwtltime,s.ksusesvc, decode(bi
5ax0q1md1w99p        tand(s.ksuseflg2,32),32,'ENABLED','DISABLED'),decode(bitand(s.ks
5ax0q1md1w99p        useflg2,64),64,'TRUE','FALSE'),decode(bitand(s.ksuseflg2,128),12
5ax0q1md1w99p        8,'TRUE','FALSE'),decode(bitand(s.ksuseflg2,65536) + bitand(s.ks
5ax0q1md1w99p        useflg2,131072),65536,'ALL EXEC',131072,'NEVER',0,'FIRST EXEC'),
5ax0q1md1w99p        s.ksuudsae,s.ksusecre,s.ksusecsn,s.ksuseecid from x$ksuse s, x$k
5ax0q1md1w99p        sled e, x$kslwt w where bitand(s.ksspaflg,1)!=0 and bitand(s.ksu
5ax0q1md1w99p        seflg,1)!=0 and s.indx=w.kslwtsid and w.kslwtevt=e.indx

68 rows selected.

回复 只看该作者 道具 举报

12#
发表于 2012-2-23 16:12:19
用这个查一下,看看是否完整一点
select sql_fulltext from v$sqlarea where sql_id='5ax0q1md1w99p'

回复 只看该作者 道具 举报

13#
发表于 2012-2-23 16:14:47
不错!可以算的上是一种方法哦

回复 只看该作者 道具 举报

14#
发表于 2012-2-23 16:28:03

回复 12# 的帖子

多谢提醒

select s.inst_id,s.addr,s.indx,s.ksuseser,s.ksuudses,s.ksusepro,s.ksuudlui,s.ksuudlna,s.ksuudoct,s.ksusesow, decode(s.ksusetrn,hextoraw('00'),null,s.ksusetrn),decode(s.ksqpswat,hextoraw('00'),null,s.ksqpswat),decode(bitand(s.ksuseidl,11),1,'ACTIVE',0,decode(bitand(s.ksuseflg,4096),0,'INACTIVE','CACHED'),2,'SNIPED',3,'SNIPED', 'KILLED'),decode(s.ksspatyp,1,'DEDICATED',2,'SHARED',3,'PSEUDO',4,'POOLED','NONE'),  s.ksuudsid,s.ksuudsna,s.ksuseunm,s.ksusepid, s.ksusemnm,s.ksusemnp,s.ksusetid,s.ksusepnm, decode(bitand(s.ksuseflg,19),17,'BACKGROUND',1,'USER',2,'RECURSIVE','?'), s.ksusesql, s.ksusesqh, s.ksusesqi, decode(s.ksusesch, 65535, to_number(null), s.ksusesch),  s.ksusesesta,  decode(s.ksuseseid, 0, to_number(null), s.ksuseseid),  s.ksusepsq, s.ksusepha, s.ksusepsi,  decode(s.ksusepch, 65535, to_number(null), s.ksusepch),  s.ksusepesta,  decode(s.ksusepeid, 0, to_number(null), s.ksusepeid),  decode(s.ksusepeo,0,to_number(null),s.ksusepeo),  decode(s.ksusepeo,0,to_number(null),s.ksusepes),  decode(s.ksusepco,0,to_number(null),         decode(bitand(s.ksusstmbv, power(2,11)), power(2,11), s.ksusepco,                to_number(null))),  decode(s.ksusepcs,0,to_number(null),         decode(bitand(s.ksusstmbv, power(2,11)), power(2,11), s.ksusepcs,                to_number(null))),  s.ksuseapp, s.ksuseaph, s.ksuseact, s.ksuseach, s.ksusecli, s.ksusefix, s.ksuseobj, s.ksusefil, s.ksuseblk, s.ksuseslt,  s.ksuseorafn, s.ksuseltm, s.ksusectm,decode(bitand(s.ksusepxopt, 12),0,'NO','YES'),decode(s.ksuseft, 2,'SESSION', 4,'SELECT',8,'TRANSACTIONAL','NONE'),decode(s.ksusefm,1,'BASIC',2,'PRECONNECT',4,'PREPARSE','NONE'),decode(s.ksusefs, 1, 'YES', 'NO'),s.ksusegrp,decode(bitand(s.ksusepxopt,4),4,'ENABLED',decode(bitand(s.ksusepxopt,8),8,'FORCED','DISABLED')),decode(bitand(s.ksusepxopt,2),2,'FORCED',decode(bitand(s.ksusepxopt,1),1,'DISABLED','ENABLED')),decode(bitand(s.ksusepxopt,32),32,'FORCED',decode(bitand(s.ksusepxopt,16),16,'DISABLED','ENABLED')),  s.ksusecqd, s.ksuseclid,  decode(s.ksuseblocker,4294967295,'UNKNOWN',  4294967294, 'UNKNOWN',4294967293,'UNKNOWN',4294967292,'NO HOLDER',  4294967291,'NOT IN WAIT','VALID'),decode(s.ksuseblocker, 4294967295,to_number(null),4294967294,to_number(null), 4294967293,to_number(null), 4294967292,to_number(null),4294967291,  to_number(null),bitand(s.ksuseblocker, 2147418112)/65536),decode(s.ksuseblocker, 4294967295,to_number(null),4294967294,to_number(null), 4294967293,to_number(null), 4294967292,to_number(null),4294967291,  to_number(null),bitand(s.ksuseblocker, 65535)),  decode(s.ksusefblocker,4294967295,'UNKNOWN',  4294967294, 'UNKNOWN',4294967293,'UNKNOWN',4294967292,'NO HOLDER',  4294967291,'NOT IN WAIT','VALID'),decode(s.ksusefblocker,4294967295,to_number(null),4294967294,to_number(null), 4294967293,to_number(null), 4294967292,to_number(null),4294967291,  to_number(null),bitand(s.ksusefblocker, 2147418112)/65536),decode(s.ksusefblocker,4294967295,to_number(null),4294967294,to_number(null), 4294967293,to_number(null), 4294967292,to_number(null),4294967291,  to_number(null),bitand(s.ksusefblocker, 65535)),  w.kslwtseq,w.kslwtevt,e.kslednam,e.ksledp1,w.kslwtp1,w.kslwtp1r, e.ksledp2,w.kslwtp2,w.kslwtp2r,e.ksledp3,w.kslwtp3,w.kslwtp3r, e.ksledclassid,e.ksledclass#,e.ksledclass, decode(w.kslwtinwait,        0,decode(bitand(w.kslwtflags,256),                 0,-2,                 decode(round(w.kslwtstime/10000),                        0,-1,                        round(w.kslwtstime/10000))),        0), decode(w.kslwtinwait,0,round((w.kslwtstime+w.kslwtltime)/1000000),  round(w.kslwtstime/1000000)), decode(w.kslwtinwait,1,'WAITING',  decode(bitand(w.kslwtflags,256),0,'WAITED UNKNOWN TIME',   decode(round(w.kslwtstime/10000),0,'WAITED SHORT TIME',    'WAITED KNOWN TIME'))),w.kslwtstime, decode(w.kslwtinwait,0,to_number(null),  decode(bitand(w.kslwtflags,64),64,0,w.kslwttrem)), w.kslwtltime,s.ksusesvc, decode(bitand(s.ksuseflg2,32),32,'ENABLED','DISABLED'),decode(bitand(s.ksuseflg2,64),64,'TRUE','FALSE'),decode(bitand(s.ksuseflg2,128),128,'TRUE','FALSE'),decode(bitand(s.ksuseflg2,65536) + bitand(s.ksuseflg2,131072),65536,'ALL EXEC',131072,'NEVER',0,'FIRST EXEC'),s.ksuudsae,s.ksusecre,s.ksusecsn,s.ksuseecid from x$ksuse s, x$ksled e, x$kslwt w where bitand(s.ksspaflg,1)!=0 and bitand(s.ksuseflg,1)!=0 and s.indx=w.kslwtsid and w.kslwtevt=e.indx


等待学习ML的方法

回复 只看该作者 道具 举报

15#
发表于 2012-2-23 16:50:23
我的方法其实很简单, 实际上这些动态性能视图的定义都被写死在oracle 这个2进制文件里了 , 用strings导出 可读的文本后, 通过从v$fixed_view_definition 中获得的一些表达式 搜索就可以找到了。


  1. [oracle@vrh2 ~]$ strings `which oracle` > oracle.log


  2. oracle@vrh2 ~]$ grep -i "s.ksusemnm" oracle.log         


  3. oracle@vrh2 ~]$ grep -i "11.2.0.3" oracle.log        
  4. kjiroll_11_2_0_3_
  5. kjiroll_11_2_0_3_
  6. 11.2.0.3
  7. 11.2.0.3.1
  8. * instance %d at version %d.%d.%d.%d, rolling upgrade from before 11.2.0.3
  9. * kjfcverchk: rolling upgrade from before 11.2.0.3 completed
  10. * kjfcverchk: rolling upgrade from before 11.2.0.3 underway
  11. 11.2.0.3.0
  12. NLSRTL Version 11.2.0.3.0 - Production            
复制代码

回复 只看该作者 道具 举报

16#
发表于 2012-2-23 20:00:42
嗯,很好很强大 受教了

回复 只看该作者 道具 举报

17#
发表于 2012-2-24 14:45:54
竟然还可以这样查看  真佩服!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 01:42 , Processed in 0.066600 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569