清除后在分区 Table 上重建 SQL 服务器索引的最佳实践
Best Practice for Rebuilding SQL Server Indexes on Partitioned Table After Purging
我有一个分区 table,其中包含大约。 160 亿行。 table 有一个聚集列存储索引和一个分区对齐的非聚集索引。分区都在同一个文件组上。 table 按天划分。我计划 运行 每周处理一次 运行 包含超过 90 天的数据的分区。该过程还删除分区(使用分区函数合并范围 stmt)。在给定的每周 运行 期间,可能会有大约。 5 亿行 t运行 分布在多个分区中。我应该在 t运行 处理那么多数据后重建索引或更新统计信息吗?
在 SQL 服务器 2017
清除后无需重建索引。分区截断和合并会从 table 中删除数据和存储。其余分区不受清除操作的影响,因此之后不需要重建。
您可能不需要为聚集列存储索引更新统计信息,除非您已经创建了列统计信息。用于行组消除的列段值元数据也被清除删除。
清除后更新 non-clustered b-tree 索引的统计信息是个好主意,因为每个索引只有一个统计信息 blob。清除后统计数据将过时。
我有一个分区 table,其中包含大约。 160 亿行。 table 有一个聚集列存储索引和一个分区对齐的非聚集索引。分区都在同一个文件组上。 table 按天划分。我计划 运行 每周处理一次 运行 包含超过 90 天的数据的分区。该过程还删除分区(使用分区函数合并范围 stmt)。在给定的每周 运行 期间,可能会有大约。 5 亿行 t运行 分布在多个分区中。我应该在 t运行 处理那么多数据后重建索引或更新统计信息吗?
在 SQL 服务器 2017
清除后无需重建索引。分区截断和合并会从 table 中删除数据和存储。其余分区不受清除操作的影响,因此之后不需要重建。
您可能不需要为聚集列存储索引更新统计信息,除非您已经创建了列统计信息。用于行组消除的列段值元数据也被清除删除。
清除后更新 non-clustered b-tree 索引的统计信息是个好主意,因为每个索引只有一个统计信息 blob。清除后统计数据将过时。