Oracle 19c hanganalyze报告中10位数字sql_id的含义解析
Oracle 19c hanganalyze跟踪报告中current sql_id为10位纯数字的含义
你遇到的纯数字取值属于hanganalyze的正常输出,不是报告生成错误,具体规则如下:
- 你认知中类似
bhi12gxhrpqsj的13位字母数字混合串,是Oracle为可追踪的用户SQL、公开递归SQL生成的标准SQL标识符,对应V$SQL.SQL_ID字段。只有当会话当前执行的语句挂载了可被共享池追踪的SQL游标时,hanganalyze才会在current sql_id字段输出这类标准值。 - 当会话正在执行Oracle内核层面的底层内部操作、没有关联公开SQL游标时,current sql_id字段不会输出13位标准sql_id,而是直接输出该内部操作对应的10位数字型SQL哈希值,对应Oracle早期版本使用的数字式SQL标识
hash_value,这类值无法直接通过V$SQL.SQL_ID字段匹配查询。
结合你贴的跟踪片段判断,该会话当前正处于阻塞状态1分20秒,执行的是无公开游标的内核态操作,常见触发场景包括内核层面的锁资源遍历、事务回滚核心流程、库缓存内部锁维护、后台进程的对象清理动作等。如果需要进一步定位具体操作,可以将该10位数字转换为16进制值,匹配Oracle内部操作代码表确认动作类型。
你提供的对应跟踪片段参考:
time in wait: 1 min 20 sec timeout after: never wait id: 2335 blocking: 1 session current sql_id: 3597362520 <<====== wait history:
内容的提问来源于stack exchange,提问作者Kishan
相关产品推荐
相关产品推荐

