Optimistic Concurrency VS. Pessimistic Concurrency Control

  • 时间:
  • 浏览:0

Read committed

(四)Dynamics CRM

Optimistic concurrency control在某条记录被读取时不用将记录锁死,不在 当发现某条记录被多个用户一起去修改的原先 ,其中一1个 用户的修改都不能 被提交(commit),或多或少用户会收到一1个 异常告知亲戚亲戚朋友的修改不在 成功。

(一)为或多或少不能 并发控制机制

Read uncommitted

Serializable

Phantom

Dirty read

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

Repeatable read

(二)Optimistic Concurrency Control与Pessimistic Concurrency Control

若果

若果有或多或少文章并不建议使用RCSI,比如《The Potential Dangers of the Read Committed Snapshot Isolation Level》,很多很多我就是建议将数据库隔离级别修改为RCSI。

查看隔离级别都不能 使用:

SQL Server默认使用的是Pessimistic Concurrency Control,数据库隔离级别(isolation level)是read committed。从SQL Server 30005结束英文,微软增加了对Optimistic Concurrency Control的支持,一1个 新的数据库隔离级别,SNAPSHOT 和 READ COMMITTED SNAPSHOT isolation (RCSI)

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

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

(五)总结

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

本文介绍了为或多或少要使用并发控制机制,或多或少是Optimistic Concurrency Control和Pessimistic Concurrency Control,SQL Server所使用的并发控制机制,咋样设置和查看数据库的隔离级别,以及Dynamics CRM不能 慎用RCSI。

John和Marry有一1个 联合银行帐户,帐户的余额是$30000,John向帐户里存入了$30000,Marry取走了$30000,若果不在 并发控制,John最后看了的余额是$30000,而Marry看了的帐户余额是$30000。

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

Pessimistic concurrency control使用的机制是用户A在读取或修改某条记录(rows)时,将该记录锁死,处理或多或少用户一起去读取或修改同第一根记录。直到用户A释放掉锁,或多或少用户才都不能 对记录读取或修改,很多很多Pessimistic Lock的缺点是容易意味系统性能瓶颈。

Isolation level

(三)SQL Server

SQL Server支持的隔离级别有如下多少:

Non-repeatable read

并发控制机制是为了处理多个用户一起去更改同第一根数据,也都不能 处理一1个 用户在更改数据的一起去造成原先 用户看了”过期”的数据。下面看一1个 例子就明白了。

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

而若果使用了并发控制机制,在John读取帐户余额的原先 ,该帐户就被锁死了,Mary不在 法律法律依据读取若果修改该帐户,直到John完成操作,把锁释放了。