enq: TX - row lock contention等待事件處理

wenhual43發表於2013-01-05
下午接到同事的電話。說資料庫記憶體cpu都很高。應用伺服器停了,資料庫壓力還沒有降下去。
進去後。發現有近50個enq: TX - row lock contention等待事件,還有幾十個read by other session等待事件。檢視了一下,這些會話都鎖定了一張表,都在做update操作。
把update語句貼上出來,一看執行計劃。看了嚇我一跳。全表掃描。更新一行也全表掃描,問了一下開發,原來他們前幾天處理過這個表,但是重建的時候沒有建主鍵。
這下問題好辦了。把主鍵建上。
問題又來了,主鍵唯一衝突。好傢伙。後來發現插入的重複資料是一摸一樣的。這下把重複記錄都刪掉,留下一條,然後把主鍵建上。
把應用起來,一切正常。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25027760/viewspace-752119/,如需轉載,請註明出處,否則將追究法律責任。

相關文章