当我在 oracle 9 DB 中运行下面的 Sql 命令时,我一直遇到“enq:TX - 行锁争用”。表 mytable 是一个小表,不到 300 行。
UPDATE MYTABLE
SET col1 = col1 + :B3 ,
col2 = SYSDATE
WHERE :B2 = col3
AND :B1 = col4
我同时运行 10 个线程,有些线程等待长达 10 秒才有机会更新。我知道我会面临这个死锁问题,但对我来说问题是它们应该能够更快,因为表很小,所以更新它会很快。
编辑:我无法更改此代码,它位于第三方应用程序中。我只能调整数据库。
我可以做些什么来提高行锁队列的速度?我怎样才能改善这个等待时间,让我的线程运行得更快?