當我在oracle 9數據庫中運行下面的Sql命令時,我一直進入「enq:TX - 行鎖爭用」。 表mytable是一個小表,少於300行。Oracle行鎖的長隊列時間
UPDATE MYTABLE
SET col1 = col1 + :B3 ,
col2 = SYSDATE
WHERE :B2 = col3
AND :B1 = col4
我在同一時間運行10個線程,有些人等待只要10秒鐘,以獲得更新的機會。我知道我會面對這個僵局問題,但對我來說,問題是他們應該能夠快得多,因爲表格很小,所以更新它會很快。
編輯:我不能改變這段代碼,它在第三方應用程序中。我只能調整數據庫。
我該怎麼做才能提高行鎖隊列的速度? 我該如何改善這個等待時間,讓我的線程跑得更快?
更新通常會影響多少行? – 2010-03-11 14:53:02
每個更新隻影響一行。但很多時候,我有十個線程試圖更新同一行。 – kurast 2010-03-11 15:03:17