一个微信群上有个朋友问“有什么形式能将v$session的代码导出来”?还真没想过这个问题。

导出来的用途,我们暂且放到一边儿,但就这个问题,有什么解决方案?

根据群中朋友、老师的相互探讨给出了几种方案。

我们知道,v$session是Oracle的动态性能视图,但其实他,不是真正的视图,可以参考《v$和v_$的一些玄机》,v$session是个同义词,

SQL> select object_name, object_type from dba_objects where object_name in ('V$SESSION', 'V_$SESSION');
OBJECT_NAME                    OBJECT_TYPE
------------------------------ -----------------------
V_$SESSION                     VIEW
V$SESSION                      SYNONYM

11g中能通过get_ddl得到v_$session的定义,但只是知道他是从真正的视图v$session创建而来的,

而在19c中直接通过get_ddl不能得到定义,

SQL> select dbms_metadata.get_ddl('VIEW', 'V_$SESSION', 'SYS') from dual;
ERROR:
ORA-31603: object "V_$SESSION" of type VIEW not found in schema "SYS"
ORA-06512: at "SYS.DBMS_METADATA", line 6731
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.DBMS_METADATA", line 6718
ORA-06512: at "SYS.DBMS_METADATA", line 9734
ORA-06512: at line 1
no rows selected

另外一个视图,v$fixed_view_definition可以给出视图的定义,但是因为view_definition只存储4000个字节,因此有可能不会显示完整,

SQL> desc v$fixed_view_definitionName                                      Null?    Type----------------------------------------- -------- ----------------------------VIEW_NAME                                          VARCHAR2(128)VIEW_DEFINITION                                    VARCHAR2(4000)CON_ID                                             NUMBER

明显没显示完整,

SQL> select view_definition from v$fixed_view_definition where view_name = 'GV$SESSION';VIEW_DEFINITION
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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,9),1,'ACTIVE',0,
decode(bitand(s.ksuseflg,4096),0,'INACTIVE','CACHED'),'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.ksuse
flg,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,'SES
SION', 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')),de
code(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,429496
7295,'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, 2147221504)/262144),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.ksuse
blocker, 262143)),  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), 4294
967293,to_number(null), 4294967292,to_number(null),4294967291,  to_number(null),bitand(s.ksusefblocker, 2147221504)/262144),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, 262143)),  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.kslw
tstime, 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.ksuse

另外一种思路,就是从10053得到定义,如下所示,可以知道,v$session来自于"SYS"."X$KSUSE" "S","SYS"."X$KSLED" "E","SYS"."X$KSLWT" "W"这三个X$基表,

SQL:******* UNPARSED QUERY IS *******
SELECT "S"."INST_ID" "INST_ID","S"."ADDR" "SADDR","S"."INDX" "SID",
"S"."KSUSESER" "SERIAL#","S"."KSUUDSES" "AUDSID",
"S"."KSUSEPRO" "PADDR","S"."KSUUDLUI" "USER#",
"S"."KSUUDLNA" "USERNAME","S"."KSUUDOCT" "COMMAND",
"S"."KSUSESOW" "OWNERID",DECODE("S"."KSUSETRN",HEXTORAW('00'),NULL,"S"."KSUSETRN") "TADDR",
DECODE("S"."KSQPSWAT",HEXTORAW('00'),NULL,"S"."KSQPSWAT") "LOCKWAIT",
DECODE(BITAND("S"."KSUSEIDL",9),1,'ACTIVE',0,DECODE(BITAND("S"."KSUSEFLG",4096),0,'INACTIVE','CACHED'),'KILLED') "STATUS",
DECODE("S"."KSSPATYP",1,'DEDICATED',2,'SHARED',3,'PSEUDO',4,'POOLED','NONE') "SERVER","S"."KSUUDSID" "SCHEMA#",
"S"."KSUUDSNA" "SCHEMANAME","S"."KSUSEUNM" "OSUSER","S"."KSUSEPID" "PROCESS","S"."KSUSEMNM" "MACHINE",
"S"."KSUSEMNP" "PORT","S"."KSUSETID" "TERMINAL","S"."KSUSEPNM" "PROGRAM",
DECODE(BITAND("S"."KSUSEFLG",19),17,'BACKGROUND',1,'USER',2,'RECURSIVE','?') "TYPE",
"S"."KSUSESQL" "SQL_ADDRESS","S"."KSUSESQH" "SQL_HASH_VALUE","S"."KSUSESQI" "SQL_ID",
DECODE("S"."KSUSESCH",65535,TO_NUMBER(NULL),"S"."KSUSESCH") "SQL_CHILD_NUMBER",
"S"."KSUSESESTA" "SQL_EXEC_START",DECODE("S"."KSUSESEID",0,TO_NUMBER(NULL),"S"."KSUSESEID") "SQL_EXEC_ID",
"S"."KSUSEPSQ" "PREV_SQL_ADDR","S"."KSUSEPHA" "PREV_HASH_VALUE","S"."KSUSEPSI" "PREV_SQL_ID",
DECODE("S"."KSUSEPCH",65535,TO_NUMBER(NULL),"S"."KSUSEPCH") "PREV_CHILD_NUMBER",
"S"."KSUSEPESTA" "PREV_EXEC_START",DECODE("S"."KSUSEPEID",0,TO_NUMBER(NULL),"S"."KSUSEPEID") "PREV_EXEC_ID",
DECODE("S"."KSUSEPEO",0,TO_NUMBER(NULL),"S"."KSUSEPEO") "PLSQL_ENTRY_OBJECT_ID",
DECODE("S"."KSUSEPEO",0,TO_NUMBER(NULL),"S"."KSUSEPES") "PLSQL_ENTRY_SUBPROGRAM_ID",
DECODE("S"."KSUSEPCO",0,TO_NUMBER(NULL),DECODE(BITAND("S"."KSUSSTMBV",POWER(2,11)),POWER(2,11),
"S"."KSUSEPCO",TO_NUMBER(NULL))) "PLSQL_OBJECT_ID",DECODE("S"."KSUSEPCS",0,TO_NUMBER(NULL),
DECODE(BITAND("S"."KSUSSTMBV",POWER(2,11)),POWER(2,11),"S"."KSUSEPCS",TO_NUMBER(NULL))) "PLSQL_SUBPROGRAM_ID",
"S"."KSUSEAPP" "MODULE","S"."KSUSEAPH" "MODULE_HASH","S"."KSUSEACT" "ACTION","S"."KSUSEACH" "ACTION_HASH",
"S"."KSUSECLI" "CLIENT_INFO","S"."KSUSEFIX" "FIXED_TABLE_SEQUENCE",
"S"."KSUSEOBJ" "ROW_WAIT_OBJ#","S"."KSUSEFIL" "ROW_WAIT_FILE#",
"S"."KSUSEBLK" "ROW_WAIT_BLOCK#","S"."KSUSESLT" "ROW_WAIT_ROW#",
"S"."KSUSEORAFN" "TOP_LEVEL_CALL#","S"."KSUSELTM" "LOGON_TIME",
"S"."KSUSECTM" "LAST_CALL_ET",DECODE(BITAND("S"."KSUSEPXOPT",12),0,'NO','YES') "PDML_ENABLED",
DECODE("S"."KSUSEFT",2,'SESSION',4,'SELECT',8,'TRANSACTIONAL','NONE') "FAILOVER_TYPE",
DECODE("S"."KSUSEFM",1,'BASIC',2,'PRECONNECT',4,'PREPARSE','NONE') "FAILOVER_METHOD",
DECODE("S"."KSUSEFS",1,'YES','NO') "FAILED_OVER","S"."KSUSEGRP" "RESOURCE_CONSUMER_GROUP",
DECODE(BITAND("S"."KSUSEPXOPT",4),4,'ENABLED',DECODE(BITAND("S"."KSUSEPXOPT",8),8,'FORCED','DISABLED')) "PDML_STATUS",
DECODE(BITAND("S"."KSUSEPXOPT",2),2,'FORCED',DECODE(BITAND("S"."KSUSEPXOPT",1),1,'DISABLED','ENABLED')) "PDDL_STATUS",
DECODE(BITAND("S"."KSUSEPXOPT",32),32,'FORCED',DECODE(BITAND("S"."KSUSEPXOPT",16),16,'DISABLED','ENABLED')) "PQ_STATUS",
"S"."KSUSECQD" "CURRENT_QUEUE_DURATION","S"."KSUSECLID" "CLIENT_IDENTIFIER",DECODE("S"."KSUSEBLOCKER",4294967295,'UNKNOWN',4294967294,'UNKNOWN',4294967293,'UNKNOWN',4294967292,'NO HOLDER',4294967291,'NOT IN WAIT','VALID') "BLOCKING_SESSION_STATUS",
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",2147221504)/262144) "BLOCKING_INSTANCE",
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",262143)) "BLOCKING_SESSION",
DECODE("S"."KSUSEFBLOCKER",4294967295,'UNKNOWN',4294967294,'UNKNOWN',4294967293,'UNKNOWN',4294967292,'NO HOLDER',4294967291,'NOT IN WAIT','VALID') "FINAL_BLOCKING_SESSION_STATUS",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",2147221504)/262144) "FINAL_BLOCKING_INSTANCE",
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",262143)) "FINAL_BLOCKING_SESSION","W"."KSLWTSEQ" "SEQ#","W"."KSLWTEVT" "EVENT#","E"."KSLEDNAM" "EVENT","E"."KSLEDP1" "P1TEXT","W"."KSLWTP1" "P1","W"."KSLWTP1R" "P1RAW","E"."KSLEDP2" "P2TEXT","W"."KSLWTP2" "P2","W"."KSLWTP2R" "P2RAW","E"."KSLEDP3" "P3TEXT","W"."KSLWTP3" "P3","W"."KSLWTP3R" "P3RAW","E"."KSLEDCLASSID" "WAIT_CLASS_ID","E"."KSLEDCLASS#" "WAIT_CLASS#","E"."KSLEDCLASS" "WAIT_CLASS",
DECODE("W"."KSLWTINWAIT",0,DECODE(BITAND("W"."KSLWTFLAGS",256),0,(-2),DECODE(ROUND("W"."KSLWTSTIME"/10000),0,(-1),ROUND("W"."KSLWTSTIME"/10000))),0) "WAIT_TIME",DECODE("W"."KSLWTINWAIT",0,ROUND(("W"."KSLWTSTIME"+"W"."KSLWTLTIME")/1000000),ROUND("W"."KSLWTSTIME"/1000000)) "SECONDS_IN_WAIT",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'))) "STATE","W"."KSLWTSTIME" "WAIT_TIME_MICRO",DECODE("W"."KSLWTINWAIT",0,TO_NUMBER(NULL),DECODE(BITAND("W"."KSLWTFLAGS",64),64,0,"W"."KSLWTTREM")) "TIME_REMAINING_MICRO","W"."KSLWTLTIME" "TIME_SINCE_LAST_WAIT_MICRO","S"."KSUSESVC" "SERVICE_NAME",DECODE(BITAND("S"."KSUSEFLG2",32),32,'ENABLED','DISABLED') "SQL_TRACE",
DECODE(BITAND("S"."KSUSEFLG2",64),64,'TRUE','FALSE') "SQL_TRACE_WAITS",DECODE(BITAND("S"."KSUSEFLG2",128),128,'TRUE','FALSE') "SQL_TRACE_BINDS",DECODE(BITAND("S"."KSUSEFLG2",65536)+BITAND("S"."KSUSEFLG2",131072),65536,'ALL EXEC',131072,'NEVER',0,'FIRST EXEC') "SQL_TRACE_PLAN_STATS","S"."KSUUDSAE" "SESSION_EDITION_ID","S"."KSUSECRE" "CREATOR_ADDR","S"."KSUSECSN" "CREATOR_SERIAL#","S"."KSUSEECID" "ECID","S"."KSUUDTXLP" "SQL_TRANSLATION_PROFILE_ID",("S"."KSUSEPGAMAN"+"S"."KSUSEPGAAUTO")*1024 "PGA_TUNABLE_MEM",
DECODE(BITAND("S"."KSUUDFLG",512),512,'ENABLED','DISABLED') "SHARD_DDL_STATUS","S"."CON_ID" "CON_ID","S"."KSUSEXNM" "EXTERNAL_NAME",DECODE(BITAND("S"."KSUSEFLG3",2048),2048,'TRUE','FALSE') "PLSQL_DEBUGGER_CONNECTED" FROM "SYS"."X$KSUSE" "S","SYS"."X$KSLED" "E","SYS"."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"

除此之外,老虎刘老师推荐了另外一种“骚”操作,通过检索oracle这个二进制文件,其中包含了v$session定义,

[oracle@bisal bin]$ strings oracle | grep kslwtstime
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,9),1,'ACTIVE',0,decode(bitand(s.ksuseflg,4096),0,'INACTIVE','CACHED'),'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,
ecode(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, 2147221504)/262144),
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, 262143)),
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, 2147221504)/262144),
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, 262143)),
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,s.ksuudtxlp,(s.ksusepgaman+s.ksusepgaauto)*1024,decode(bitand(s.ksuudflg,512),512,'ENABLED','DISABLED'),s.con_id,s.ksusexnm,
decode(bitand(s.ksuseflg3,2048),2048,'TRUE','FALSE')
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

这个问题其实没什么实际的作用,只是给出了系统视图定义获取的几种方式,真正的难点在于X$基表字段的作用,但往往这些都是Oracle的商业机密,在可公开的文档中很少会提及到。

近期更新的文章:

《NULL判断对SQL的影响》

《什么是快乐星球?什么又是“标量子查询”呢?》

《VMWare增加磁盘空间的操作》

《曾经运维生涯中的几个“最”》

《一条半连接SQL的优化过程》

《如何找到隐式转换的SQL?》

《为什么日期不建议使用VARCHAR2或者NUMBER?》

《查看时间戳类型的绑定变量》

《写代码如何事半功倍?》

《支持超过4000字节的varchar2类型》

文章分类和索引:

《公众号700篇文章分类和索引》

找到系统视图定义的几种操作相关推荐

  1. Active Directory 定义了五种操作主机角色

    Active Directory 定义了五种操作主机角色(又称FSMO): 1.架构主机 schema master 2.域命名主机 domain naming master 3.相对标识号 (RID ...

  2. java查看sql视图_SQL Server查看视图定义总结

    在SQL Server中如何查看数据库视图的定义呢? 其实官方文档已经有一个较详细的总结了,这里在官方文档的基础上,我们再深入展开分析一下,例如如何获取系统视图的定义.知其然知其所以然吗. 1:使用S ...

  3. python 查询sqlserver 视图_SQL Server查看视图定义总结

    在SQL Server中如何查看数据库视图的定义呢? 其实官方文档已经有一个较详细的总结了,这里在官方文档的基础上,我们再深入展开分析一下,例如如何获取系统视图的定义.知其然知其所以然吗. 1:使用S ...

  4. linux 权限 x 表示,在Linux系统中,用户对目录拥有“x”权限,表示可以执行下列哪种操作?...

    在Linux系统中,用户对目录拥有"x"权限,表示可以执行下列哪种操作? 更多相关问题 通过花的中心只能作1个对称面称辐射对称花. 王叔和归纳了脉象( )种,规范了脉象名称. 车轮 ...

  5. linux与w7之间的切换,w7系统切换窗口怎么操作_教你w7系统切换窗口的几种方法

    在我我们的日常学习和工作中,为了方便我们能够快速的进行操作,通常都会使用切换窗口的方式来解决,这样既方便又节省时间.可是对于一些win7新用户来说,却不知道如何操作切换窗口的功能,对此,小编就在这里简 ...

  6. 南瑞rt21系统服务器,南瑞“一种基于CORBA的综合监控系统数据定义和存取方法”等三项科技成果获专利授权...

    南瑞"一种基于CORBA的综合监控系统数据定义和存取方法"等三项科技成果获专利授权 北极星电力信息化网  来源:国网电科院    2012/5/22 9:24:13  我要投稿 北 ...

  7. 系统视图和用户视图的区别_读书笔记——数据库系统概论

    第一章 绪论 1.1 数据库系统概述 一.四个基本概念 !! 数据:描述事物的符号记录:数据库:长期存储在计算机内.有组织.可共享的大量数据的集合:数据库管理系统DBMS:位于用户和操作系统之间的一层 ...

  8. 金仓数据库KingbaseES数据库参考手册(静态数据词典视图2.2. 系统视图 )

    目录 2.2.1. sys_available_extensions ¶ 2.2.2. sys_available_extension_versions ¶ 2.2.3. sys_config ¶ 2 ...

  9. Sql Server之旅——第一站 那些给我们带来福利的系统视图

    本来想这个系列写点什么好呢,后来想想大家作为程序员,用的最多的莫过于数据库了,但是事实上很多像我这样工作在一线的码农,对sql 都一知半解,别谈优化和对数据库底层的认识了,我也是这样... 一:那些系 ...

最新文章

  1. Oracle 优化器_访问数据的方法_单表
  2. python day08
  3. 线段树——思维(Codeforces 339D Xenia and Bit Operations/Billboard HDU - 2795)
  4. js计算数组中每个元素出现的次数(2种方法)
  5. 数据是怎么在网上安全传输的
  6. AngularJs自定义指令的详解
  7. ui-router 路由重定向
  8. 修改他人代码:怎么才能减少发布Bug概率?
  9. 谷歌浏览器打开普通用户_谷歌浏览器为啥打开之后会是其他的浏览器的解决步骤...
  10. 【iPhone】解决照片无法编辑或删除的问题
  11. oracle mysql 同义词_Oracle数据库同义词
  12. JavaScript 教程,很好的!
  13. 二分法查找——绝对值最小的数
  14. 解决VMware虚拟机安装ikuai限速10M
  15. Firebase报错:Installations Service is unavailable. Please try again later.
  16. Android Lint代码检查实践
  17. 基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡
  18. QT读写Sqlite数据库的三种方式
  19. 微生物是如何影响身体健康的
  20. 【微信小程序】wx:if与hidden的区别

热门文章

  1. 猜客魔盒二次开发盲盒APP趣味功能讲解(二)
  2. 让DedeCMS的栏目页标题显示页码数
  3. 高级网吧光纤组建网络技术方案(转)
  4. 自动化立体库抗震解决方案
  5. 用STAR法则设计产品/运营简历
  6. 图像局部特征(五)--斑点检测之SIFT算法原理总结
  7. 关于五常膝关节矫形器的介绍
  8. 关于emWin显示矢量字体TTF所踩的坑
  9. 一声叹息:国产麒麟系统为何饱受争议?
  10. 电平是啥,大白话理解行吗?