SQl死锁随想

1.死锁的发生根源:对有限资源的超限定范围的访问,进而等待(拥塞),死锁。

   死锁的相关:

          对资源的竞争访问,访问无序(不能合理的使用资源的顺序),申请未得的资源并不放弃已有资源。

2.事务

    acid 和锁的

    U S X 锁。 查询时S 共享锁  ,其他操作肯定有X 锁,更新有U 锁

  锁保证数据一致,安全行。降低访问速度,增加资源分配的条件,增加死锁的发生。

锁的级别,表锁,行锁,库锁,数据页锁。 (可以通过该变锁的级别来加快处理的速度)

3.索引

    聚集索引,非聚集索引。目的,加快数据处理速度,减少的资源的锁定时间。

4. with onlock 的合理使用(可以容忍脏读)。

5. sql server 的处理速度,DB服务器的处理能力,也是减少死锁的应用,硬件的提升还是有用。减少等待队列,减少拥塞的时间

最后说一句,oracle 的 撤销字段还是很好的,可以在查询时没有锁(MS SQl 有S 锁,阻止加不兼容的锁),减少了select的等待时间,看来银行,电信选他还是有道理的

原文地址:https://www.cnblogs.com/wcLT/p/2174040.html