六、并发事务处理和死锁问题
程序对事务并发处理上的错误。
资源争用引起锁阻塞和死锁。
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 的
使用dbclearcase/" target="_blank" >cc traceon(3604)
dbcc sqltext(1)
dbcc sqltext(2)
查看到进程执行的sql
select * from View(视图) where ID = null (未列出原sql,仅举个例子)