【发布时间】:2018-01-23 16:22:01
【问题描述】:
我们有一个大型多用途应用程序,在多个表上存在 OBJECT 和 PAGE 块。我们无法重新考虑设计,但需要减少影响客户端机器性能的块。 我一直在考虑在一张表上禁用锁升级,但需要知道它会给其他资源带来什么压力。磁盘 i/o 已经紧张。额外的单个锁会比自动表锁需要更多的 i/o 吗?它会比我们的应用程序数据库更影响我们的系统数据库吗? 我们不进行全表更新/读取。每个请求只会处理表格的一小部分。
【问题讨论】:
-
这里没有任何人可以提供有意义的答案。您尚未提供任何详细信息。
-
我想知道有更多的个人锁定请求(行而不是少量的页面/表)将如何影响系统。锁信息将保存在哪里?可能有一千行锁会导致资源问题?
-
再次......这非常模糊,唯一有效的答案是“它取决于”。
-
大概您参考了跟踪标志 1211 和 1224。您是否阅读了文档? Quote: 使用这个跟踪标志会产生过多的锁。这可能会降低数据库引擎的性能,或导致 1204 错误。你读过“减少阻塞”info.
-
没有。我打算添加锁定提示或 ALTER TABLE 以禁用锁定升级。
标签: sql-server sql-server-2012 locking block escalation