我有一个非常大的表(800GB),它有一个 DATETIME 字段,它是分区模式的一部分。此字段名为 tran_date。我遇到的问题是索引未与分区正确对齐,并且我无法在 PRIMARY KEY 中包含 tran_date 字段,因为它设置为可为空。
我可以删除所有外键关系、统计信息和索引,但我不能修改列,因为分区模式仍然依赖于 tran_date 列。
在我的研究中,我找到了一种将表移出分区的方法,即删除聚集索引,然后将聚集索引重新写入 PRIMARY 文件组,这将允许我修改列,但此操作需要要删除几个小时,在 PRIMARY 上编写临时 CLUSTERED INDEX 需要 13 个小时,然后我必须删除它,更改表,然后正确地重新编写 CLUSTERED INDEX,这需要另外 13 个小时。另外我有不止一张桌子。
当我在我的开发环境中使用类似大小的数据集测试此部署时,需要几天时间才能完成,因此我正在尝试寻找减少时间的方法。
如果我可以将表移出分区而不必在 PRIMARY 上写入 CLUSTERED INDEX,它将显着减少更改列所需的时间。