我正在处理的数据库有会话等待,这是由于DMLs在一个过程中对多个表进行处理。
DBA将其标识为enq: TX - row lock contention。
我怎样才能解决这个问题?
发布于 2012-06-18 11:37:50
由于UPDATE状态,您持有锁。当您提交事务时,这些锁将被释放。
要解决此问题,请确保尽快提交事务。
发布于 2012-07-18 17:29:20
如果在FOR循环中有很多更新,一个想法是在FOR循环中放置一个内部计数器变量,以提交每X个更新数。
例如。我有5000万行要更新。我的FOR循环通过每个单独的更新来工作。不要等到所有5000万次更新完成才提交(并避免撤消增长),而是每隔150万行提交一次。这将完成您的更新,允许为错误创建一个合理的回滚窗口,并允许持有该锁的其他事务滑入其中。
https://dba.stackexchange.com/questions/19421
复制相似问题