發表文章

目前顯示的是有「UNABLE_TO_LOCK_ROW」標籤的文章

為什麼常常遇到 Record Lock? 可以如何避免?

當系統愈來愈複雜、data volume 水漲船高、系統間integration 交錯縱橫、automated process 與日俱增……你可能會愈來愈常遇到這種 error message: error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record 此時你可能會好奇,哪可能就這麼巧、其它人也在同時操作同一個 record!? 其實被鎖住的原因不一定是在這筆 record 本身,以下列兩個可能性: 有太多 child record 擠在同一個 parent record 下。 當 child 被操作的時候,會連同 parent 一起鎖住。所以當你操作的 record 是與很多其它 record 共享一個 parent 時,就有高機率被鎖住。 太多 record 都 lookup 到同一筆 record。 當 record 被操作的時候,會連同此 record 所 lookup 的 record 一起鎖住。所以當你操作的 record 是與很多其它 record 共同 lookup 到同一個 record 時,就有高機率被鎖住。