首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪一个并发控制更有效悲观和乐观并发控制

哪一个并发控制更有效悲观和乐观并发控制
EN

Stack Overflow用户
提问于 2011-06-24 03:15:30
回答 2查看 1.4K关注 0票数 1

我想知道哪个并发控制更有效,悲观和乐观的并发控制?SQL Server2005使用悲观并发控制作为默认设置是否有特殊原因?是否出于与性能相关的原因?

期待中的感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-24 05:53:34

我不确定您所说的"SQL Server2005默认使用悲观并发控制“是什么意思。IMO SQL Server 2005为我们提供了允许我们自己实现乐观或悲观的工具。我在simple-talk上写了几个例子:Developing Modifications that Survive Concurrency

编辑:我不认为SQL Server的默认行为完全是“悲观的并发控制”。让我们考虑下面这个简单的例子,它在默认的隔离级别下运行,读提交:

代码语言:javascript
复制
-- Connection one

BEGIN TRANSACTION;

SELECT * FROM Schedule 
WHERE ScheduledTime BETWEEN '20110624 06:30:00' 
AND '20110624 11:30' ;

-- Connection two
UPDATE Schedule 
SET Priority = 'High'
WHERE ScheduledTime ='20110624 08:45:00'
-- nothing prevent this update from completing, 
-- so this is not exactly pessimistic

-- Connection one
DELETE FROM Schedule 
WHERE ScheduledTime ='20110624 08:45:00' ;
COMMIT ;
-- nothing prevents us from deleting 
-- the modified row
票数 1
EN

Stack Overflow用户

发布于 2011-06-24 03:19:53

这完全取决于您的应用程序需要什么并发性。如果你正在开发一个OLTP应用,悲观主义可能是最好的……如果您正在开发单用户数据库,那么乐观就可以了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6459433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档