Optimistic Concurrency VS. Pessimistic Concurrency Control

  • 时间:
  • 浏览:1
  • 来源:大发彩神6合_大发神彩6合官方

John和Marry4个 联合银行帐户,帐户的余额是$800,John向帐户里存入了$800,Marry取走了$800,可能那么并发控制,John最后看多的余额是$800,而Marry看多的帐户余额是$800。

SQL Server默认使用的是Pessimistic Concurrency Control,数据库隔离级别(isolation level)是read committed。从SQL Server 805刚现在时候刚开始,微软增加了对Optimistic Concurrency Control的支持,4个 新的数据库隔离级别,SNAPSHOT 和 READ COMMITTED SNAPSHOT isolation (RCSI)

Non-repeatable read

Serializable

Optimistic concurrency control在某条记录被读取时不要将记录锁死,可以 了当发现某条记录被多个用户同時 修改的时候,其中4个 用户的修改都需用被提交(commit),并不是用户会收到4个 异常告知没那么人儿的修改那么成功。

本文转自JF Zhu博客园博客,原文链接:   http://www.cnblogs.com/jfzhu/p/809918.html ,如需转载请自行联系原作者

SQL Server支持的隔离级别有如下十几只 :

(五)总结

Read committed

Repeatable read

Pessimistic concurrency control使用的机制是用户A在读取或修改某条记录(rows)时,将该记录锁死,处理并不是用户同時 读取或修改同根小记录。直到用户A释放掉锁,并不是用户才都需用对记录读取或修改,全都 Pessimistic Lock的缺点是容易愿因 系统性能瓶颈。

可能

(一)为哪几种需用并发控制机制

查看隔离级别都需用使用:

(三)SQL Server

(四)Dynamics CRM

Dirty read

Phantom

运行使用 SQL Server(配置了已提交读快照隔离 (RCSI))的 Microsoft Dynamics CRM 将获得商业上合理的支持。商业上合理的支持是指 Microsoft 客户支持服务所提供的、不需用修改 Microsoft Dynamics CRM 代码的所有合理的支持。—参见 《SQL Server deployment》

Microsoft Dynamics CRM 2013 实施指南中提到:

本文介绍了为哪几种要使用并发控制机制,哪几种是Optimistic Concurrency Control和Pessimistic Concurrency Control,SQL Server所使用的并发控制机制,怎么可以设置和查看数据库的隔离级别,以及Dynamics CRM需用慎用RCSI。

有并不是并发控制机制,Optimistic concurrency control(乐观?)和Pessimistic concurrency control(悲观?),两者之间的区别是:

而可能使用了并发控制机制,在John读取帐户余额的时候,该帐户就被锁死了,Mary那么依据读取可能修改该帐户,直到John完成操作,把锁释放了。

(二)Optimistic Concurrency Control与Pessimistic Concurrency Control

Isolation level

并发控制机制是为了处理多个用户同時 更改同根小数据,也都需用处理4个 用户在更改数据的同時 造成4个 用户看多”过期”的数据。下面看4个 例子就明白了。

因此有并不是文章未必建议使用RCSI,比如《The Potential Dangers of the Read Committed Snapshot Isolation Level》,全都 我全都 建议将数据库隔离级别修改为RCSI。

设置隔离级别都需用用以下命令:

Read uncommitted

SQL Server默认使用的隔离级别是Read Committed。