Oracle健康检查报告Long running sessions的LAST_CALL字段含义咨询
Oracle长会话LAST_CALL字段含义解答
你提供的长会话查询记录如下:
************************ Long running sessions for LNLS12P_SB ************************ INST_ID SID SERIAL# SQL_ID USERNAME LOCKWAIT SCHEMANAME MACHINE LAST_CALL ------- ------- ------- ------------- ------------------------------ ---------------- --------------- --------------- -------------------------------------------------- --------- 1 166 56286 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp4.us.db.com 398.57 1 848 57444 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp4.us.db.com 408.53 1 273 15473 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp3.us.db.com 418.53 1 844 58591 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp3.us.db.com 428.58 1 139 45028 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp3.us.db.com 512.73 1 718 18749 fxd3d1mf6qsg4 NPL_USER NPL_USER nycindapp3.us.db.com 522.75
字段核心含义
这个LAST_CALL字段是Oracle数据库健康检查脚本基于内置视图v$session的LAST_CALL_ET字段计算输出的,单位为秒,含义分两种场景:
- 若对应会话状态为ACTIVE(正在执行SQL):数值表示当前正在运行的SQL已经持续执行的时长
- 若对应会话状态为INACTIVE(空闲状态):数值表示会话上次执行完SQL后到当前的空闲时长
结合现有记录的排查建议
你给出的所有会话均持有相同的SQL_ID fxd3d1mf6qsg4,且LOCKWAIT字段为空无锁等待,说明这些都是正在运行同一条SQL的活跃会话,对应LAST_CALL数值表示最早触发的该SQL已经运行了522.75秒(约8.7分钟),最晚触发的也已经运行了398.57秒(约6.6分钟)。
这类同SQL多会话长时间运行的场景,大概率是应用侧并发触发了慢SQL,可优先抓取该SQL_ID对应的执行计划、绑定变量值定位性能瓶颈。
内容的提问来源于stack exchange,提问作者CCNA
相关产品推荐
相关产品推荐

