gpt4 book ai didi

oracle - 杀死正在执行的程序的方法是什么?

转载 作者:行者123 更新时间:2023-12-01 11:29:34 25 4
gpt4 key购买 nike

我正在使用 Oracle sql 开发人员。我有一个涉及两个表(表 1 和表 2)之间的 MINUS 语句的过程。表1有超过一百万行的数据。在这种情况下,当我尝试执行它时,它不返回任何内容,但处于执行阶段。

同时,我需要截断这个表数据。但是,在执行此操作时,出现资源忙错误。如何终止正在执行的存储过程,同时如何进行截断操作?

最佳答案

你不杀一个程序 ,你杀了一个 session .

在终止 session 之前,您可能想知道 读者不会阻止作者,反之亦然 .所以,如果你想选择/项目正在修改表中的行,您总是可以这样做。

  • 识别 session :

  • 选择 s.sid,
    s.serial#,
    p.spid,
    s.用户名,
    程序
    FROM v$session s
    加入 v$process p ON p.addr = s.paddr
    WHERE s.type != '背景';
  • 终止 session :

  • ALTER SYSTEM KILL SESSION 'sid,serial#';
    KILL SESSION命令实际上并没有终止 session 。它只是要求 session 杀死自己。在某些情况下,例如等待来自远程数据库的回复或回滚事务, session 不会立即自行终止,而是会等待当前操作完成。在这些情况下, session 将具有“标记为终止”的状态。然后它会尽快被杀死。

    除了上述语法,您还可以添加 立即条款。

    ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

    这不会影响命令执行的工作,但它会立即将控制权返回给当前 session ,而不是等待终止确认。

    阅读本文 article更多细节。

    关于oracle - 杀死正在执行的程序的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888573/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com