gpt4 book ai didi

sql - 如何检查oracle中长时间运行的插入进度

转载 作者:行者123 更新时间:2023-12-04 14:27:10 24 4
gpt4 key购买 nike

我试图在对 oracle 中的每一行执行一些计算后插入 100 万条记录。 15个小时过去了,它仍在工作。当我在这个表上写一个选择查询时,它什么也没显示。我不知道每次插入时插入的数据在哪里。

所以我的问题是,在 oracle 表中执行长时间运行插入时,有没有办法检查到目前为止插入了多少行,谢谢。

最佳答案

这取决于您是否在 SQL 中进行插入或 PL/SQL .使用时 PL/SQL您有自己的方法来获取已处理的行数,当然也可以编写自己的程序。

来到 SQL ,我可以想到两种方法:

  • V$SESSION_LONGOPS
  • V$交易

  • 大部分 GUI based tools对于长期操作 View ,会有很好的图形表示。您可以查询-
    SELECT ROUND(SOFAR*21411/TOTALWORK)
    FROM V$SESSION_LONGOPS
    WHERE username = '<username>'
    AND TIME_REMAINING > 0
    V$TRANSACTION view 可以告诉您是否还有任何交易未决。如果您的 INSERT完成并 COMMIT发行,交易即告完成。您可以 join它与 v$session .您可以查询-
    SELECT     .... 
    from v$transaction t
    inner join v$session s
    ON t.addr = s.taddr;

    关于sql - 如何检查oracle中长时间运行的插入进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27817470/

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