zoukankan      html  css  js  c++  java
  • 检查Oracle 中死事务的语句

    SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */   
      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                              0
    SQL> /
    
    
      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,依据以往的project经验:

    于是改为

    SQL>alter system set fast_start_parallel_rollback=false scope=both;

    之后,再次执行

    SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN,/* Transaction ID */  
     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:.21

     24*0.21=5.04小时。即:估计5.04小时后回滚完成。

    另外注意:在其它环境使用时,请注意替换KTUXEUSN=13和KTUXESLT=5

  • 相关阅读:
    windows 8 metro 开发学习资源链接
    通过实例模拟ASP.NET MVC的Model绑定机制:简单类型+复杂类型
    Session hijacking(会话劫持)
    PagedList是NuGet上提供的一个分页的类库
    joomla
    Win8风格的Web启动界面
    Dynamic
    c# 常用文檔轉換txt文件
    创建Windows服务(Windows Services)N种方式总结
    DOM世界的观察者
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3893217.html
Copyright © 2011-2022 走看看