关于 PartitioningScript 示例的自述文件

[本主题为预先发布的文档内容,在未来的版本中可能会更改。包括以占位符形式出现的空白主题。请注意:为了提供更多的中文内容,Microsoft 引进了非传统翻译方式。在本预发行版本中,文档中的部分内容就是使用非传统翻译方式翻译。Microsoft 知道使用非传统翻译方式翻译的文档很难尽善尽美,内容中或许会有词汇、句法、语法方面的错误。本文档的正式版本将使用传统翻译方式翻译,提供与上一版本正式版相同的译文品质。]

此示例仅适用于 SQL Server 2005 和 SQL Server 2008,而不适用于 SQL Server 2005 之前的任何 SQL Server 版本。

PartitioningScript 示例的目的是说明 SQL Server 的表和索引的分区功能。有关此功能的信息,请参阅 SQL Server 联机丛书中的“已分区表和已分区索引”。

备注

提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员允许,不得将示例应用程序与生产 SQL Server 数据库相连或一起使用。

应用场景

AdventureWorks2008R2 示例数据库中,TransactionHistory 表用于记录每个销售订单、采购订单和工作订单事务。因此,此表是数据库中访问次数最多、访问量最大的表之一。创建 TransactionHistoryArchive 表的目的是为了存储 TransactionHistory 表中旧的事务。数据以月为基础传输至 TransactionHistoryArchive 中进行其他分析,以使 TransactionHistory 保持在适当小的状态并且只维护当前数据。

若要为这些表创建分区,示例需要执行以下操作:

  • TransactionHistory 表的 TransactionDate 列上创建分区函数 TransactionRangePF1,以便使每个分区都包含一个月的数据。
  • 创建分区方案 TransactionsPS1 以便将分区映射至文件组。在此示例中,所有分区都位于同一文件组中。
  • 删除并重新创建 TransactionHistory 表并将分区方案 TransactionsPS1 指定为此表的位置。
  • TransactionHistoryArchive 表的 TransactionDate 列上创建分区函数 TransactionRangePF2
  • 创建分区方案 TransactionsPS2 以便将分区映射至文件组。在此示例中,所有分区都位于同一文件组中。
  • 删除并重新创建 TransactionHistoryArchive 表并将分区方案 TransactionsPS2 指定为此表的位置。
  • 向这两个表大容量插入数据。

在表之间进行的数据的月“块区”传输通过在这两个表之间切换分区来执行。通常这只需要几秒种,而不是早期版本中的几分钟或几小时,因为它只是元数据操作而不是数据的物理重定位。分区切换在 SlidingWindow 示例中说明。

语言

Transact-SQL

必备组件

运行此示例之前,请执行以下任务:

运行示例

以下过程显示了如何运行 PartitioningScript 示例。

运行 PartitioningScript 示例

  1. 在 SQL Server Management Studio 中打开 PartitionAW.sql 文件。默认安装目录为 C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Administration\Partitioning\Scripts。单击**“执行”**。