问题描述
嗨,
在RAC oracle环境中,可以说具有相同会话id的多个实例正在运行,那么在不影响性能的情况下从gv $ session获取会话ID的最佳方法是什么?sys_context('userenv','sessionid') 会返回什么?
在RAC oracle环境中,可以说具有相同会话id的多个实例正在运行,那么在不影响性能的情况下从gv $ session获取会话ID的最佳方法是什么?sys_context('userenv','sessionid') 会返回什么?
专家解答
执行计划表明SID可能比AUDSID更好 (这就是sessionid)
因此,也许SID,INST_ID的组合,但您可能会带来SESSIONID以及 “SERIAL #” 的代理
SQL> select * from gv$session where sid = 123; Execution Plan ---------------------------------------------------------- Plan hash value: 1627146547 --------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 372 | 0 (0)| 00:00:01 | | 1 | MERGE JOIN CARTESIAN | | 1 | 372 | 0 (0)| 00:00:01 | | 2 | NESTED LOOPS | | 1 | 120 | 0 (0)| 00:00:01 | |* 3 | FIXED TABLE FIXED INDEX| X$KSLWT (ind:1) | 1 | 55 | 0 (0)| 00:00:01 | |* 4 | FIXED TABLE FIXED INDEX| X$KSLED (ind:2) | 1 | 65 | 0 (0)| 00:00:01 | | 5 | BUFFER SORT | | 1 | 252 | 0 (0)| 00:00:01 | |* 6 | FIXED TABLE FIXED INDEX| X$KSUSE (ind:1) | 1 | 252 | 0 (0)| 00:00:01 | --------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 3 - filter("W"."KSLWTSID"=123) 4 - filter("W"."KSLWTEVT"="E"."INDX") 6 - filter("S"."INDX"=123 AND BITAND("S"."KSSPAFLG",1)<>0 AND BITAND("S"."KSUSEFLG",1)<>0) SQL> select * from gv$session where audsid = 123123; Execution Plan ---------------------------------------------------------- Plan hash value: 3425234845 --------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 372 | 0 (0)| 00:00:01 | | 1 | NESTED LOOPS | | 1 | 372 | 0 (0)| 00:00:01 | | 2 | NESTED LOOPS | | 1 | 307 | 0 (0)| 00:00:01 | | 3 | FIXED TABLE FULL | X$KSLWT | 31 | 1705 | 0 (0)| 00:00:01 | |* 4 | FIXED TABLE FIXED INDEX| X$KSUSE (ind:1) | 1 | 252 | 0 (0)| 00:00:01 | |* 5 | FIXED TABLE FIXED INDEX | X$KSLED (ind:2) | 1 | 65 | 0 (0)| 00:00:01 | --------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - filter("S"."INDX"="W"."KSLWTSID" AND "S"."KSUUDSES"=123123 AND BITAND("S"."KSSPAFLG",1)<>0 AND BITAND("S"."KSUSEFLG",1)<>0) 5 - filter("W"."KSLWTEVT"="E"."INDX")复制
因此,也许SID,INST_ID的组合,但您可能会带来SESSIONID以及 “SERIAL #” 的代理
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。