数据库局部性HANG,通常表现为部分会话HANG。观察会话是否为HANG,可以查询V$SESSION_WAIT视图,然后观察该会话的P1、P2、P3值,如果该值在不停的改变,则说明会话没有HANG,而可能只是比较慢。
如果要进一步观察会话HANG或者慢的原因,则可以对该会话设置10046事件和errorstack来帮助诊断故障的原因。
如需要对9834号进程做跟踪,语法如下:
SQL> alter session set tracefile_identifier='STACK_10046';
SQL> oradebug setospid 9834
SQL> oradebug unlimit
SQL> oradebug event 10046 trace name context forever,level 12
SQL> oradebug dump errorstack 3
SQL> oradebug dump errorstack 3
SQL> oradebug dump errorstack 3
SQL> oradebug tracefile_name
SQL> oradebug event 10046 trace name context off