Vik*_*ova 0 sql t-sql sql-server locking transactions
我需要存储数据,其生命周期在大多数情况下应该是 1-30 分钟(但仍然可以是 1 天/1 周)。这只是一个特定的项目 - 由许多用户执行的大量批量操作。
因此,处理这些数据的典型过程:
当只有单个用户使用系统时,这很好用。当许多用户上传产生大约 1-5 千行的文档时,这很有效。但是在插入 10,000 行后,SQL Server 会强制锁定表……这是一个问题。
所以,有不同的方法来解决这个问题,但它们都是丑陋的:
我接下来要:关闭对指定表的任何锁定。不需要一致性,只有索引应该工作。
我怎么能做到这一点?任何其他想法也受到赞赏。
小智 5
您可以通过 ALTER TABLE mytable SET(LOCK_ESCALATION=DISABLE) 在表级别禁用锁升级。有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms190273.aspx。
重要提示:锁升级是一种基本的资源治理方法。禁用它可能会导致显着更高的内存消耗,这反过来又会产生各种下游影响,因此在松开之前彻底测试。这是 32 位平台的一个主要问题,它将任何应用程序的 VAS 限制为 4GB,而不管服务器上安装了多少 RAM。以上任何内容仅可用于数据缓存。在 64 位平台上,SQL Server 能够将您拥有的任何内存用于任何目的。
| 归档时间: |
|
| 查看次数: |
10689 次 |
| 最近记录: |