在日常管理中,可能会遇到长时间的事务回滚,通过查看v$session_longops视图,可以获知这些事务回滚需要的时间,以下是测试过程:
在session 1中执行事务回滚:
session 1:
SQL> select sid from v$mystat where rownum=1;
SID
----------
149
Elapsed: 00:00:00.08
SQL> insert into emp select * from emp ;
2097152 rows created.
Elapsed: 00:01:27.82
SQL> roll
session 2中查看v$session_longops,可以看到回滚事务的进度。
session 2:
SQL> select sid,opname,sofar,totalwork,units,TIME_REMAINING from v$session_longops where sid=149;
SID OPNAME SOFAR TOTALWORK UNITS TIME_REMAINING
---------- ------------------------- ---------- ---------- --------------- --------------
149 Transaction Rollback 1424 5399 Blocks 50
从该查询可以看出,该事务总计需要回滚5399个block,已经回滚了1424个,剩余时间是50秒。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-668358/ ,如需转载,请注明出处,否则将追究法律责任。