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