oracle - 突然删除需要很长时间

标签 oracle performance

我们有一个全年每天都在运行的饲料流程。 作为其中的一部分,我们每天从表中删除每一行(大约 100 万行),使用 5 个不同的存储过程重新填充它,然后提交事务。 这是我们调用的唯一提交语句。 突然之间,删除已开始,大约需要 2 小时才能完成。 删除也很简单(delete from T_PROFILE_WORK) 这在过去一年中运行良好,但在过去一周我注意到了这个问题。

非常感谢对此的任何帮助

最佳答案

请查看此 SO 问题的答案:"oracle delete query taking too much time" :

  1. You could be blocked by another session (most likely). Before you delete you should make sure noone else is locking the rows, eg: issue SELECT NULL FROM tablename WHERE colname=:value FOR UPDATE NOWAIT,
  2. There could be a ON DELETE TRIGGER that does additional work,
  3. Check for UNINDEXED REFERENCE CONSTRAINTS pointing to this table (there is a script from AskTom that will help you determine if such unindexed foreign keys exist).

我会先检查#2 和#3,它们最容易诊断。

关于oracle - 突然删除需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637733/

相关文章:

oracle - PL/SQL 包中内部过程前向声明的优点

oracle - 事务上下文中 Oracle 存储过程/函数的语义

performance - 更改较少文件后,Magento 2 加载速度非常慢

sql - 更新语句非常慢

oracle - DUAL 表的内部功能?

java - 引用游标和直接 Java 代码之间的性能差异

java - 添加 MariaDB 工件时 SchemaCrawler 出错

scala - 具有相同运行时类但不同静态类型的对象的不同性能

javascript - 提高重复性 Mongo 数据库访问任务的性能

javascript - 提高网络速度并连接到 node.js 服务器时出现意外行为