DB2 鎖升級失敗將引起死鎖
文章分類:數據庫--start
DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 2
Message: The current transaction has been rolled back because of a deadlock or timeout. Reason code "2".
昨天,執行了一條很簡單的SQL,卻怎么也執行不成功,報的錯誤如上所示,是死鎖。既然是死鎖,那就過一會執行吧。等了一會后仍然死鎖。到底是哪個事務和哪個事務相互鎖了呢?查詢了老半天才發現原來這條SQL語句更新的數據量非常大,導致鎖升級,然后鎖升級又失敗了,導致了死鎖。原來鎖升級失敗會導致死鎖。所以,通常我們應該將LOCKLIST和MAXLOCK參數調整到足夠大,盡量避免鎖等待、鎖升級,發揮數據庫的最大并發性。
引用
DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 2
Message: The current transaction has been rolled back because of a deadlock or timeout. Reason code "2".
昨天,執行了一條很簡單的SQL,卻怎么也執行不成功,報的錯誤如上所示,是死鎖。既然是死鎖,那就過一會執行吧。等了一會后仍然死鎖。到底是哪個事務和哪個事務相互鎖了呢?查詢了老半天才發現原來這條SQL語句更新的數據量非常大,導致鎖升級,然后鎖升級又失敗了,導致了死鎖。原來鎖升級失敗會導致死鎖。所以,通常我們應該將LOCKLIST和MAXLOCK參數調整到足夠大,盡量避免鎖等待、鎖升級,發揮數據庫的最大并發性。