摘要:
死锁原因: 死锁是由两个相互阻塞的线程组成,它们互相等待对方完成,一般死锁情况下两个数据库事务之间存在着相反的操作。sqlserver中死锁监视器定时检查死锁,如果发现死锁,将选择其中回滚消耗最小的任务,这时候发生1025数据库错误。可以通过启用sqlserver2005快照模式,避免一些读/写的逆向阻塞造成的死锁.但是对于一些写/写阻塞的死锁可能无法解决,很多时候需要从业务的角度来避免一些写/写... 阅读全文
摘要:
阻塞原因 在默认事务隔离情况下,数据库事务越长,一方面独占锁被持有的时间越长,写操作阻塞读操作的机会就越多;另一方面,在默认的读提交隔离模式下,读操作使用共享锁与独占锁不兼容,读操作也会阻塞写操作。 阻塞也是死锁产生的基本条件,改善了阻塞就能有效减少死锁。 在软件开发后期,在对大数据量的集成测试工程中,通过活动查看器可以观察到阻塞情况,主要产生阻塞的原因就是读和写相互阻塞在对同一个大表的操作上。因... 阅读全文