时间:2021-05-24
SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ---------------- ------------------------ ---------- 13 5 47447 ACTIVE DEAD 2819919 39 0 502 ACTIVE NONE 1 43 45 480 ACTIVE NONE 0SQL> / KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ---------------- ------------------------ ---------- 13 5 47447 ACTIVE DEAD 2819919<----该值没减小。 39 0 502 ACTIVE NONE 1 43 45 480 ACTIVE NONE 0
查询v$px_session和v$fast_start_servers,显示很多并行进程在rollback,根据以往的工程经验:
于是改为
SQL>alter system set fast_start_parallel_rollback=false scope=both;之后,再次运行
SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- -------------------------- ------------------------ ---------- 13 5 47447 ACTIVE DEAD 2033516 35 29 502 ACTIVE NONE 1 SQL> / KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- -------------------------- ------------------------ ---------- 13 5 47447 ACTIVE DEAD 2033433<---该值不断变小。 35 29 502 ACTIVE NONE 1使用如下脚本查看回滚完毕的预计时间(以天为单位):
SQL> set serveroutput on SQL> declare 2 l_start number; 3 l_end number; 4 begin 5 select ktuxesiz into l_startfrom x$ktuxe where KTUXEUSN=13 and KTUXESLT=5; 6 dbms_lock.sleep(60); 7 select ktuxesiz into l_endfrom x$ktuxe where KTUXEUSN=13 and KTUXESLT=5; 8 dbms_output.put_line('time estDay:'|| round(l_end/(l_start -l_end)/60/24,2)); 9 end; 10 / time est Day:.2124*0.21=5.04小时。即:预计5.04小时后回滚完毕。
另外注意:在其他环境使用时,请注意替换KTUXEUSN=13和KTUXESLT=5
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前阵子,我写了一篇博客“ORACLE中能否找到未提交事务的SQL语句”,那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢
MERGE语句是SQL语句的一种。在SQLServer、Oracle数据库中可用,MySQL、PostgreSQL中不可用。MERGE是Oracle9i新增的语
正在看的ORACLE教程是:oracle用什么SQL语句判断表存不存在。SQLSERVER用来判断表或视图存在的语句在ORACLE中不能用,请问该怎么写。谢谢。
postgresql的now()为当前事务开始时间,而Oracle的sysdate是当前时间。区别在于事务。postgresql中的now():postgres
Java与Oracle实现事务(JDBC事务)实例详解J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下怎样实现JDBC事务。JDBC事务是由Con