我见过许多关于锁升级的文章和问题/答案,但下面的内容仍然含糊不清。请回答具体要求的信息。
请帮助我理解上面的场景,并且我也想告诉您,在我的应用程序中,一个连接在一个表中的锁不会超过2或3个,但是我的应用程序是多线程的,并且可能同时获得超过20个连接,那么我应该禁用锁升级吗?特别是如果问题1的答复是“否”。
感谢并致以问候
发布于 2010-03-11 06:52:29
从结尾开始--抱歉,20个或更多并发连接在负载方面没有什么关系--您只应该在需要时禁用锁升级。也就是说,在确定了你的问题后,这个问题就解决了。就这么简单。其他任何事情都是过度优化的--以及与SQL Server中的智能作斗争,SQL Server做得很好。
他说:据我所知,可能有一些罕见的情况。
据我所知,没有记载。任何答案都可能随修补程序的变化而改变。
3:预定的锁基本上是一种准备。他们停止分配不允许他们意愿实现的锁。也就是说除非你的桌子是最小的..。你很少会看到一个表级的锁。
你对你的问题有什么具体的设想吗?基本上-这似乎,并遗憾,如果这是通过错误的,就像一个初学者害怕的所有锁定做他的应用程序,而从来没有体验到一个sql服务器真正的工作方式之前。一般来说,锁是随你喜欢发生的。有时没有锁定是有意义的,通常使用riht事务隔离级别是有意义的,而且通常您完全忽略锁定的细节,因为它们并不重要。您将陷入问题的唯一情况是死锁,这些问题是通过更改访问顺序来解决的。
除此之外,Locks只起作用,您可以信任SQL Server正确地完成它的工作。
https://stackoverflow.com/questions/2423074
复制相似问题