六、并發事務處理和死鎖問題
程序對事務并發處理上的錯誤。
資源爭用引起鎖阻塞和死鎖。
SYBASE的鎖模式為行鎖,可以減小死鎖發生的可能性。
死鎖或者鎖阻塞,如何檢查鎖阻塞的大致步驟
比如mysql 為例子
1.Show processlist,查看有locked的進程
2.查看阻塞進程執行的sql
3.關掉程序,或者殺死進程,解掉死鎖,不建議殺死進程,可能導致不完整的數據。 軟件測試
4.查看sql問題,單獨確認問題
5.優化sql或者查程序問題
還以一個實際問題中,sybase鎖阻塞的例子
環境維護發現鎖阻塞,發現很慢,檢查到有問題的sql
1. sp_lock 看到死鎖
2.查看阻塞進程信息
select * from master..sysprocesses where ipaddr =‘XXXX‘
3.造成鎖阻塞的進程是spid為 1 和 2 的
使用dbcc traceon(3604)
dbcc sqltext(1)
dbcc sqltext(2)
查看到進程執行的sql
select * from View(視圖) where ID = null (未列出原sql,僅舉個例子)
文章來源于領測軟件測試網 http://www.kjueaiud.com/