我被分配了一项任务来改进几个表的数据管理过程(数据归档)表就像 200gb
我现在正在阅读有关表分区和最佳实践的信息,据我所知,这个过程就像
- 创建文件组和文件
- 创建分区函数
- 分区方案 - (将间隔映射到适当的文件组)
- 重新创建聚集索引 - 这是将表物理移动到另一个文件的时刻
- 利润 :)
但无法找到一个信息,此时现有的非聚集索引发生了什么?从这里:http ://technet.microsoft.com/en-us/library/ms187526(v=sql.105).aspx 我发现
虽然分区索引可以独立于它们的基表来实现,但通常设计一个分区表然后在表上创建一个索引是有意义的。执行此操作时,SQL Server 使用与表相同的分区方案和分区列自动对索引进行分区。因此,索引以与表基本相同的方式进行分区。这使得索引与表对齐。
还有一个
对唯一的非聚集索引进行分区时,索引键必须包含分区列。在对非唯一、非聚集索引进行分区时,SQL Server 默认将分区列添加为索引的非键(包含)列,以确保索引与基表对齐。如果分区列已经存在于索引中,SQL Server 不会将其添加到索引中。
但是这些都没有参考我的问题我是否必须为现有的非聚集索引显式创建分区函数,这些索引在其定义中是否/没有分区列?
假设我们有类似的桌子
表 A - col1 col2 col3
在 col1 上具有聚集索引,在 PRIMARY 分区上的 col 3 上具有非聚集索引
分区后 col3 上的非聚集索引会发生什么,它将与表对齐还是仍驻留在 PRIMARY 分区上