关于 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
必备组件
运行此示例之前,请执行以下任务:
- 安装 SQL Server 并确保包括以下组件:
- 数据库引擎
- SQL Server Management Studio
- 在 Microsoft SQL Server T-SQL Scripting Product Samples Web site(Microsoft SQL Server T-SQL 脚本产品示例网站)下载 AdventureWorks2008R2 (OLTP) 示例数据库和数据库引擎示例。
运行示例
以下过程显示了如何运行 PartitioningScript 示例。
运行 PartitioningScript 示例
- 在 SQL Server Management Studio 中打开 PartitionAW.sql 文件。默认安装目录为 C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Administration\Partitioning\Scripts。单击**“执行”**。