首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于DB锁和锁升级SQL Server 2008

关于DB锁和锁升级SQL Server 2008
EN

Stack Overflow用户
提问于 2010-03-11 06:44:40
回答 1查看 1.4K关注 0票数 1

我见过许多关于锁升级的文章和问题/答案,但下面的内容仍然含糊不清。请回答具体要求的信息。

  1. 如果禁用锁定升级,那么在页面或表这样的较高资源上会出现预期锁定吗?
  2. ,如果将锁(IX)放置在页面上,则另一个连接可以在该页中的行上获取锁(S)或锁(X)。
  3. 是否会像共享锁一样运行预期锁,即,如果锁(IX)或锁( is )放置在表中,则不能在表中插入新行。

请帮助我理解上面的场景,并且我也想告诉您,在我的应用程序中,一个连接在一个表中的锁不会超过2或3个,但是我的应用程序是多线程的,并且可能同时获得超过20个连接,那么我应该禁用锁升级吗?特别是如果问题1的答复是“否”。

感谢并致以问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-11 06:52:29

从结尾开始--抱歉,20个或更多并发连接在负载方面没有什么关系--您只应该在需要时禁用锁升级。也就是说,在确定了你的问题后,这个问题就解决了。就这么简单。其他任何事情都是过度优化的--以及与SQL Server中的智能作斗争,SQL Server做得很好。

他说:据我所知,可能有一些罕见的情况。

据我所知,没有记载。任何答案都可能随修补程序的变化而改变。

3:预定的锁基本上是一种准备。他们停止分配不允许他们意愿实现的锁。也就是说除非你的桌子是最小的..。你很少会看到一个表级的锁。

你对你的问题有什么具体的设想吗?基本上-这似乎,并遗憾,如果这是通过错误的,就像一个初学者害怕的所有锁定做他的应用程序,而从来没有体验到一个sql服务器真正的工作方式之前。一般来说,锁是随你喜欢发生的。有时没有锁定是有意义的,通常使用riht事务隔离级别是有意义的,而且通常您完全忽略锁定的细节,因为它们并不重要。您将陷入问题的唯一情况是死锁,这些问题是通过更改访问顺序来解决的。

除此之外,Locks只起作用,您可以信任SQL Server正确地完成它的工作。

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

https://stackoverflow.com/questions/2423074

复制
相关文章

相似问题

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