SQL Server 2008 R2:如何使用;暂停”;写入服务器时的聚集索引
本文关键字:服务器 索引 聚集 暂停 2008 Server R2 何使用 SQL | 更新日期: 2023-09-27 18:29:56
我想知道在写入大容量数据时是否可以"暂停"聚集索引?
原因是:
- 如果我在"DateTime"上有聚集索引,则大容量插入速度较慢(10000行/秒)
- 如果我在"DateTime"上有一个非活动聚集索引,则大容量插入速度很快(1180000行/秒)
我不介意集群索引是否在一夜之间重建,例如从凌晨1点到6点。
您不能禁用聚集索引并仍然使用该表
由于聚集索引是表,禁用它意味着您无法访问任何数据。
来自MSDN:
除非删除或重新生成聚集索引,否则无法访问禁用的聚集索引的数据行。
你可以。。。
- 禁用任何非聚集索引并在一夜之间重新生成它们。这将大有帮助
DROP
所有索引(包括聚集的)并插入,然后CREATE
它们过夜。不过,这将使该表基本上不可用
我更喜欢的解决方案有点复杂:
INSERT
转换为与目标表具有相同聚集索引键的暂存表INSERT
从转移到目标过夜,然后根据需要更新索引