1. 两进程在一个资源上各有一个共享锁,都试图将该锁升级为排他锁,
但是在其他进程释放共享锁之前都不能做,从而导致一个进程被选择为死锁的受害者。
2. 死锁优先级相同情况下,评估撤销事务的代价最小的一个作为死锁的受害者,
代价包括释放受害者的资源,回滚事务等。Set DeadLock_Priority Low
3. 死锁的解决方案:
1)重试机制
2)分析死锁的根本原因并解决
4.收集死锁信息,
1)使用Profiler跟踪死锁事件
2)设置跟踪标志1222和1204,dbcc traceon (1222,-1) ,dbcc traceon (1204,-1)
相关文章
- 03-02Sqlserver将表中某列数据以符号分成多行
- 03-02python 之 并发编程(守护线程与守护进程的区别、线程互斥锁、死锁现象与递归锁、信号量、GIL全局解释器锁)
- 03-02《细说PHP》第四版 样章 第18章 数据库抽象层PDO 8
- 03-02python中查询数据库时fetchone()函数和fetchall()函数的区别
- 03-02让 Mongoose 不再重复链接数据库(如何正确连接以解决升级后的报错)
- 03-02express框架使用mongoose操作数据库
- 03-028.14 day32 TCP服务端并发 GIL解释器锁 python多线程是否有用 死锁与递归锁 信号量event事件线程q
- 03-02【Hbu数据库】第七周 强制存取控制、视图机制、审计
- 03-02SqlServer循环读取配置
- 03-02ArcGIS Pro开发Web3D应用(5)——许可过期或硬盘空间满了导致DataStore托管数据库验证失败