oracle会话id在*\u调度程序\u作业\u运行\u详细信息中表示什么
我不明白*\u调度程序\u作业\u运行\u详细信息中的会话\u ID代表什么 有两个值由coma分隔。第一个变化很大,第二个变化较小,fe。请看下面的示例:oracle会话id在*\u调度程序\u作业\u运行\u详细信息中表示什么,oracle,Oracle,我不明白*\u调度程序\u作业\u运行\u详细信息中的会话\u ID代表什么 有两个值由coma分隔。第一个变化很大,第二个变化较小,fe。请看下面的示例: +------+------------+ | sid | session_id | +------+------------+ | 6072 | 6072,8980 | +------+------------+ 通过以下查询选择此选项: 选择s.sid ,j.SESSION_ID 从…起 v$s会话 左外连接 选择会话ID ,ca
+------+------------+
| sid | session_id |
+------+------------+
| 6072 | 6072,8980 |
+------+------------+
通过以下查询选择此选项:
选择s.sid
,j.SESSION_ID
从…起
v$s会话
左外连接
选择会话ID
,castsubsersession_ID,0,INSTRSESSION_ID',,'-1作为ID1的数字
,castsubsersession_ID,INSTRSESSION_ID',“+1,LENGTHSESSION_ID-INSTRSESSION_ID',”作为ID2的编号
从所有调度程序作业运行详细信息j
关于j.ID1=s.sid
或j.ID2=s.sid
;
第一个数字似乎代表来自v$session的sid,它是会话标识符,但来自*\u调度程序\u作业\u运行\u详细信息的会话\u ID也是。但它似乎与v$sql中的sql_文本不相关-如果我从v$session中获取该sid的sql_id,那么该会话似乎是用户的会话,它完成了一些事情,而不是我的工作
==编辑==
我发现sid是可以重用的,所以它可以正常连接。会话id仅与较新的查询连接,然后与作业运行的查询连接。不过,这个“id”是否意味着什么…?它是否可以链接到旧查询的某些参数,例如serial?是的,session\u id是sid,serial-该组合是数据库实例生存期内v$session中会话的唯一标识符。您可以在其他地方看到它,例如,如果您需要运行ALTER SYSTEM KILL SESSION,则必须为其提供组合sid+串行
因此,如果您的作业上周以会话_id='60728980'运行,但当前有人以sid=6072和serial=9504的v$session连接,您可以判断这是不同的会话,而不是运行作业的会话
v$session中的sql_id只显示该会话当前正在运行的sql,因此对于非活动会话,它将为null,因为它们现在没有运行。如果作业已完成,则在v$session中的任何位置都看不到其sql\u id