创建已分区表和已分区索引

创建已分区表或已分区索引分为以下几个步骤:

  1. 创建分区函数以指定如何分区使用该函数的表或索引。

  2. 创建分区方案以指定分区函数的分区在文件组上的位置。

  3. 创建使用分区方案的表或索引。

创建分区函数

分区函数指定如何对表或索引进行分区。该函数将域映射到一组分区。若要创建分区函数,请指定分区数、分区依据列和每个分区的分区依据列值的范围。请注意,指定分区依据列时,仅可以指定一列。

有关如何计划分区函数的详细信息,请参阅已分区表和索引的计划指南

分区依据列规则

参与分区函数的计算列必须显式标记为 PERSISTED。

用作索引列时有效的所有数据类型都可以用作分区依据列,timestamp 除外。无法指定 ntext、text、image、xml、varchar(max)、nvarchar(max) 或 varbinary(max) 数据类型。此外,无法指定 Microsoft.NET Framework 公共语言运行时 (CLR) 用户定义类型和别名数据类型列。

创建分区函数

创建分区方案

分区方案将分区函数生成的分区映射到您定义的一组文件组。

创建分区方案时,根据分区函数的参数,定义映射表分区的文件组。必须指定足够的文件组来容纳分区数。可以指定所有分区映射到不同文件组、某些分区映射到单个文件组或所有分区映射到单个文件组。如果您希望在以后添加更多分区,还可以指定其他“未分配的”文件组。在这种情况下,SQL Server 用 NEXT USED 属性标记其中一个文件组。这意味着该文件组将包含下一个添加的分区。

一个分区方案仅可以使用一个分区函数。但是,一个分区函数可以参与多个分区方案。

创建分区方案

创建已分区表或已分区索引

若要在创建表或索引时对其进行分区,可以在 CREATE TABLE 或 CREATE INDEX 语句中指定下列内容:

  • 表用于将分区映射到文件组的分区方案。

  • 对表进行分区的依据列(分区依据列)。分区依据列必须与分区方案在数据类型、长度和精度方面使用的分区函数中指定的列匹配。如果列已计算,则必须将该列指定为 PERSISTED。

创建使用分区方案的表

创建使用分区方案的索引