oracle 9 DBで以下のSQLコマンドを実行すると、「enq:TX-行ロックの競合」が発生し続けます。テーブルmytableは、300行未満の小さなテーブルです。
UPDATE MYTABLE
SET col1 = col1 + :B3 ,
col2 = SYSDATE
WHERE :B2 = col3
AND :B1 = col4
同時に10個のスレッドを実行し、更新の機会が得られるまで10秒も待つものもあります。このデッドロックの問題に直面することはわかっていますが、私にとっての問題は、テーブルが小さいため、テーブルが小さいため、更新が高速になるため、はるかに高速になるはずです。
編集:このコードを変更することはできません。サードパーティのアプリケーション内にあります。DBを微調整することしかできません。
ローロックキューの速度を向上させるために何ができますか?この待機時間を改善して、スレッドの実行速度を上げるにはどうすればよいですか?