查询oracle死循环查询,Oracle HowTo:判断一个死事务的恢复进度

Oracle HowTo:判断一个死事务的恢复进度

6ee5639a40442445944d63b514b2dd02.png

x$ktuxe,该表会记录Dead事务的恢复进度:

17:30:37 SQL> select distinct KTUXECFL,count(*) from x$ktuxe group by KTUXECFL;

KTUXECFL                  COUNT(*)

------------------------ ----------

DEAD                              1

NONE                          2393

SCO|COL                          8

可以通过观察KTUXESIZ字段来评估恢复进度:

16:59:47 SQL> select ADDR,KTUXEUSN,KTUXESLT,KTUXESQN,KTUXESIZ

2 from x$ktuxe where  KTUXEUSN=10 and KTUXESLT=39;

ADDR              KTUXEUSN  KTUXESLT  KTUXESQN  KTUXESIZ

---------------- ---------- ---------- ---------- ----------

FFFFFFFF7D07B91C        10        39    2567412    1086075

17:02:12 SQL> select ADDR,KTUXEUSN,KTUXESLT,KTUXESQN,KTUXESIZ

2 from x$ktuxe where  KTUXEUSN=10 and KTUXESLT=39;

ADDR              KTUXEUSN  KTUXESLT  KTUXESQN  KTUXESIZ

---------------- ---------- ---------- ---------- ----------

FFFFFFFF7D07B91C        10        39    2567412    1086067

根据评估,这个事务回滚需要大约2.55天,我Ft:

17:08:28 SQL> declare

17:10:22  2  l_start number;

17:10:22  3  l_end    number;

17:10:22  4  begin

17:10:22  5    select ktuxesiz into l_start from x$ktuxe where  KTUXEUSN=10 and KTUXESLT=39;

17:10:22  6    dbms_lock.sleep(60);

17:10:22  7    select ktuxesiz into l_end from x$ktuxe where  KTUXEUSN=10 and KTUXESLT=39;

17:10:22  8    dbms_output.put_line('time est Day:'|| round(l_end/(l_start -l_end)/60/24,2));

17:10:22  9  end;

17:10:22  10  /

time est Day:2.55

这是非常有用的一个内部表,大家可以参考一下。

-The End-

By eygle on 2007-09-11 14:02 |

Comments (11) |

Case |

HowTo |

Internal | 1611 |

11 Comments

真的是2.55天啊?会不会这个变化不是线性的?之前试过通过v$transaction来预估事务回滚的速度,最后发现其变化不是线性的,而是越来越快。不知道死事务的恢复会怎么样,关注中~~

SELECT a.used_ublk

FROM v$transaction a, v$session b

WHERE a.addr = b.taddr AND b.sid = ;

这个也行.. 状态killed的session始终 不消失 .. 就只能等了..

where KTUXEUSN=10 and KTUXESLT=39;

eygle能说说这个是怎么来的吗?

灌一瓢,to -> 小荷

select KTUXEUSN,KTUXESLT,... where KTUXECFL='DEAD'就可以看到了.就在x$kutxe中的字段

^|^

re Thomas Zhang:

哈哈,原来是这个,我倒是忽略KTUXECFL这个字段了。

谢谢!

btw,SCO|COL是什么状态?and 有关于X$表的资料吗?最近打算小结一下X$表:)

where KTUXEUSN=10 and KTUXESLT=39;

eygle大师,不知道这个条件是如何得来的。。可以解释一下吗

x$ktuxe 在oracle9i下是什么表?

提个建议:

在文章中能不能注明操作系统版本环境 oracle版本 及一些必要的环境说明

写的好,学习是需要像这样找到方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值