• 存储过程停止执行


    前文再续,说我最近被一存储过程折磨。
    为啥说折磨呢。主要是很难调试。数据库的强项不在于编码,存储过程写的过程比较别扭,其实运行起来更坑爹。出了问题,你很难知道是哪一部分引起的。如果这个存储过程执行的时间很长,就更加痛苦了,是哪一部分慢嘛?
    另外,由于执行时间长,实在等不下去,就想中途掐掉。要怎么搞?
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    --获得SID
    select * from v$access where object='存储过程名';
     
    --获得SID,serial#
    select sid,serial#,lockwait,status,wait_time,state from v$session where sid='SID';
     
    --杀掉进程
    alter system kill session 'SID,serial#';
    如果是存储过程托付给了JOB执行,要中途停掉JOB该如何处理呢?
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    --首先要关闭JOB计划
    begin
      dbms_job.broken(JOB编号,true);
      commit;
    end;
     
    --检查JOB有没有正在运行,停止计划对它没有影响
    --获得SID
    select * from dba_jobs_running;
     
    --获得SID,serial#
    select sid,serial#,lockwait,status,wait_time,state from v$session where sid='SID';
     
    --杀掉进程
    alter system kill session 'SID,serial#';
    有时候,存储过程甚至不能被编译,那么有可能是存储过程正在运行,或者其处理的表被锁定。有以下语句可供参考:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    --存储过程无法编译
    SELECT V.OSUSER,  V.PROCESS, V.PROGRAM,v.MACHINE,V.TERMINAL,
    V.MODULE,V.USERNAME,V.STATUS, V.SID,V.SERIAL#,
           'alter system kill session ''' || V.sid || ',' || V.SERIAL# || ''';' as KILL_SESSION,
           V.PADDR
      FROM V$SESSION V
     WHERE V.USERNAME LIKE '%用户名%'
       AND V.STATUS in( 'INACTIVE','ACTIVE')
       and v.PROGRAM = 'plsqldev.exe';
     
     SELECT object_name, machine, s.sid, s.serial# ,s.status,
     'alter system kill session ''' || s.sid || ',' || s.SERIAL# || ''';' as KILL_SESSION  
    FROM gv$locked_object l, dba_objects o, gv$session s 
    WHERE l.object_id = o.object_id 
    AND l.session_id = s.sid; 
    

      

  • 相关阅读:
    YYC松鼠视频pro版安装实操001
    YYC松鼠视频短信对接教程
    此处指讲解自定义的一些目录结构及组件-yyc松鼠短视频系统
    APP启动无视频数据-YYC松鼠短视频系统
    后台提示登录失败----YYC松鼠短视频开源
    C++静态成员变量和静态成员函数
    内联函数和宏定义的区别
    C++中的接口继承和实现继承
    拷贝构造函数(define)
    类的封装
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/10828993.html
Copyright © 2020-2023  润新知